安装
wget https://ftp.postgresql.org/pub/source/v17.0/postgresql-17.0.tar.gz
tar -zxvf postgresql-17.0.tar.gz
yum -y install uuid-devel libuuid-devel readline* -y
./configure --prefix=/usr/pgsql-17/ --with-blocksize=8 --with-ossp-uuid
make
make install
建库
# 创建用户和数据数据目录
useradd postgres
mkdir -p var/lib/pgsql/17/data/
chown postgres:postgres var/lib/pgsql/ -R
chown postgres:postgres usr/pgsql-17/bin -R
su - postgres
cd usr/pgsql-17/bin
./initdb -D var/lib/pgsql/17/data/
# 初始化数据库可以完成
# 根据提示可以使用如下命令启动/关闭数据库
./pg_ctl -D var/lib/pgsql/17/data/ -l logfile start
./pg_ctl -D var/lib/pgsql/17/data/ -l logfile stop
安装uuid
# 注意需要使用 root用户
cd postgresql-17.2/contrib/uuid-ossp/
make && make install
会发现他利用的是 上一步configure的设置
自动将文件放到了.
/usr/bin/mkdir -p '/usr/pgsql-17/lib'
/usr/bin/mkdir -p '/usr/pgsql-17/share/extension'
/usr/bin/mkdir -p '/usr/pgsql-17/share/extension'
/usr/bin/install -c -m 755 uuid-ossp.so '/usr/pgsql-17/lib/uuid-ossp.so'
/usr/bin/install -c -m 644 ./uuid-ossp.control '/usr/pgsql-17/share/extension/'
/usr/bin/install -c -m 644 ./uuid-ossp--1.1.sql ./uuid-ossp--1.0--1.1.sql '/usr/pgsql-17/share/extension/'
测试验证
su - postgres
cd usr/pgsql-17/bin/
./pg_ctl -D var/lib/pgsql/17/data/ -l logfile start
./psql
create extension IF NOT EXISTS "uuid-ossp";
# 查看版本
postgres=# SELECT version();
# 结果为:
version
-----------------------------------------------------------------------------
PostgreSQL 17.0 on aarch64-unknown-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-17/bin
export PGPASSWORD=Testxxxxxxxx
export PGDATA=/var/lib/pgsql/17/data/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/pgsql-17/lib
EOF
source etc/profile.d/pg.sh
psql -U postgres
修改参数
echo "host all all 0.0.0.0/0 md5" >> var/lib/pgsql/17/data/pg_hba.conf
sed -i '/#listen/d' var/lib/pgsql/17/data/postgresql.conf
echo "listen_addresses = '*'" >> var/lib/pgsql/17/data/postgresql.conf
sed -i '/max_connections/d' var/lib/pgsql/17/data/postgresql.conf
echo "max_connections = 2000" >> var/lib/pgsql/17/data/postgresql.conf
设置服务启动
cat >/usr/lib/systemd/system/postgresql-17.service <<EOF
[Unit]
Description=PostgreSQL 17.0 database server
Documentation=https://www.postgresql.org/docs/17/static/
After=syslog.target
After=network.target
[Service]
Type=simple
User=postgres
Group=postgres
Environment=PGDATA=/var/lib/pgsql/17/data/
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
ExecStart=/usr/pgsql-17/bin/postgres -D ${PGDATA}
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0
[Install]
WantedBy=multi-user.target
EOF
systemctl enable postgresql-17.service
su - postgres
cd /usr/pgsql-17/bin/
./pg_ctl -D /var/lib/pgsql/17/data/ -l logfile stop
exit
systemctl daemon-reload
systemctl restart postgresql-17
systemctl status postgresql-17
设置密码
su - postgres
psql -U postgres
alter user postgres with password 'Testxxxxxxxx' ;
\q
文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




