安装
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




