暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PG16的源码安装过程(with-ossp-uuid)

济南小老虎 2024-05-31
113

安装

wget https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.gz
tar -zxvf postgresql-16.2.tar.gz
yum install readline* -y
yum -y install uuid-devel libuuid-devel -y
./configure --prefix=/usr/pgsql-16/ --with-blocksize=8 --with-ossp-uuid
make
make install


建库

# 创建用户和数据数据目录
useradd postgres
mkdir -p var/lib/pgsql/16/data/
chown postgres:postgres var/lib/pgsql/ -R
chown postgres:postgres usr/pgsql-16/bin -R
su - postgres
cd usr/pgsql-16/bin
./initdb -D var/lib/pgsql/16/data/
初始化数据库可以完成
根据提示可以使用如下命令启动数据库
./pg_ctl -D var/lib/pgsql/16/data/ -l logfile start


安装uuid

cd postgresql-16.2/contrib/uuid-ossp/
make && make install
会发现他利用的是 上一步configure的设置
自动将文件放到了.
/usr/bin/mkdir -p '/usr/pgsql-16/lib'
/usr/bin/mkdir -p '/usr/pgsql-16/share/extension'
/usr/bin/mkdir -p '/usr/pgsql-16/share/extension'
/usr/bin/install -c -m 755 uuid-ossp.so '/usr/pgsql-16/lib/uuid-ossp.so'
/usr/bin/install -c -m 644 ./uuid-ossp.control '/usr/pgsql-16/share/extension/'
/usr/bin/install -c -m 644 ./uuid-ossp--1.1.sql ./uuid-ossp--1.0--1.1.sql '/usr/pgsql-16/share/extension/'

测试验证
cd usr/pgsql-16/bin/
./psql
create extension IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION

查看版本
postgres=# SELECT version();
version
-----------------------------------------------------------------------------
PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.0, 64-bit
(1 row)


环境变量的设置

root 用户
cat > /etc/profile.d/pg.sh <<EOF
export PATH=$PATH:/usr/pgsql-16/bin
export PGPASSWORD=Testxxxxxxxx
export PGDATA=/var/lib/pgsql/16/data/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/pgsql-16/lib
EOF

source etc/profile.d/pg.sh
psql -U postgres


参数修改

echo  "host    all             all             0.0.0.0/0            md5" >> var/lib/pgsql/16/data/pg_hba.conf
sed -i '/#listen/d' var/lib/pgsql/16/data/postgresql.conf
echo "listen_addresses = '*'" >> var/lib/pgsql/16/data/postgresql.conf
sed -i '/max_connections/d' var/lib/pgsql/16/data/postgresql.conf
echo "max_connections = 2000" >> var/lib/pgsql/16/data/postgresql.conf


设置服务启动

cat >/usr/lib/systemd/system/postgresql-16.service <<EOF
[Unit]
Description=PostgreSQL 16.2 database server
Documentation=https://www.postgresql.org/docs/15/static/
After=syslog.target
After=network.target

[Service]
Type=simple
User=postgres
Group=postgres

Environment=PGDATA=/var/lib/pgsql/16/data/
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
ExecStart=/usr/pgsql-16/bin/postgres -D ${PGDATA}
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0
[Install]
WantedBy=multi-user.target
EOF

systemctl enable postgresql-16.service

systemctl daemon-reload
systemctl restart postgresql-16
systemctl status postgresql-16


设置密码

psql -U postgres

alter user postgres with password 'Testxxxxxxxx' ;
\q


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论