1. 先需要下载相应的rpm包
地址
https://pkgs.org/search/?q=postgresql12
一般至少要下载如下四个包
postgresql12-12.3-1PGDG.rhel7.x86_64.rpm postgresql12-contrib-12.3-1PGDG.rhel7.x86_64.rpm postgresql12-libs-12.3-1PGDG.rhel7.x86_64.rpm postgresql12-server-12.3-1PGDG.rhel7.x86_64.rpm #注意 PGDG 应该是安装资源库的 可以不安装 #contrib 是安装扩展的 没有这个包就没有 ossp-uuid的插件了 #server 是数据库的安装文件 #libs 用来客户端进行连接. #注意 如果是centos8 的话 选择 rhel8 进行下载就可以了.
注意现在最新版本是 12.3
2. 进入到linux内的下载目录执行
yum localinstall *.rpm
不需要联网就可以安装成功:
3. 查看数据库服务
注意安装完pg12数据库之后会自动创建一个服务,可以看一下服务的状态. 建完库可能是无法使用的.
[root@CentOS76 PG12]# systemctl status postgresql-12 ● postgresql-12.service - PostgreSQL 12 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since Tue 2020-05-26 13:15:00 CST; 4min 18s ago Docs: https://www.postgresql.org/docs/12/static/ Process: 7355 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE) May 26 13:15:00 CentOS76 systemd[1]: Starting PostgreSQL 12 database server... May 26 13:15:00 CentOS76 systemd[1]: postgresql-12.service: control process exited, code=exited status=1 May 26 13:15:00 CentOS76 systemd[1]: Failed to start PostgreSQL 12 database server. May 26 13:15:00 CentOS76 systemd[1]: Unit postgresql-12.service entered failed state. May 26 13:15:00 CentOS76 systemd[1]: postgresql-12.service failed.
注意这个里面的配置信息为:
[Unit] Description=PostgreSQL 12 database server Documentation=https://www.postgresql.org/docs/12/static/ After=syslog.target After=network.target [Service] Type=notify User=postgres Group=postgres # Note: avoid inserting whitespace in these Environment= lines, or you may # break postgresql-setup. # Location of database directory Environment=PGDATA=/var/lib/pgsql/12/data/ # Where to send early-startup messages from the server (before the logging # options of postgresql.conf take effect) # This is normally controlled by the global default set by systemd # StandardOutput=syslog # Disable OOM kill on the postmaster OOMScoreAdjust=-1000 Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj Environment=PG_OOM_ADJUST_VALUE=0 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} ExecStart=/usr/pgsql-12/bin/postmaster -D ${PGDATA} ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT # Do not set any timeout value, so that systemd will not kill postmaster # during crash recovery. TimeoutSec=0 [Install] WantedBy=multi-user.target
记住这两个目录就可以进行其他操作了.
4. 初始数据库
切换到PG的用户 su - postgres 切换到 PG 的默认程序目录
cd /usr/pgsql-12/bin/ 执行初始化数据库的脚本 ./initdb -D /var/lib/pgsql/12/data/
5. 然后退回到 root 用户 打开服务,并且设置服务自动启动操作.
systemctl enable postgresql-12 && systemctl restart postgresql-12
6.修改数据库密码.
su - postgres 进入postgresql 数据库 执行命令 psql 修改管理员的密码: alter role postgres with password 'Test1127?!';
7. 修改连接池大小以及设置其他机器可以远程访问.
修改默认配置文件 vim /var/lib/pgsql/12/data/pg_hba.conf 在客户端安全配置的地方增加一行. host all all 0.0.0.0/0 md5 # 注意 trust 就是默认免密, md5 是默认加密. 修改数据库其他配置信息
vim /var/lib/pgsql/12/data/postgresql.conf
# 监听所有地址的请求 注意测试环境可以,开发环境需要与防火墙一同设置, 将listen_addresses 后面的localhost 修改为 * 并且去掉前面的注释.
listen_addresses = '*' 注意也需要同步将port 前面的注释去掉. # 修改 连接数 可以将max_connections的数值改大.
max_connections = 1000
systemctl restart postgresql-12
文章末尾固定信息

我的微信
我的微信
一个码农、工程狮、集能量和智慧于一身的、DIY高手、小伙伴er很多的、80后奶爸。
评论