内容纲要
- 下载PostgreSQL12.13源码
下载地址为官网:https://www.postgresql.org/ftp/source/v12.13/
下载文件postgresql-12.13.tar.gz
后上传服务器,并解压。# 解压gz文件到当前目录 tar -zcvf postgresql-12.13.tar.gz
- 创建pg的用户组和用户
#1. 创建postgres用户组和用户 groupadd postgres useradd -g postgres postgres #2. 创建数据存放目录 mkdir -p /data/appData/postgreSql mkdir -p /data/logs/postgreSql/ #授予权限 chmod -R 775 /data/appData/postgreSql chmod -R 775 /data/logs/postgreSql/ #更改目录拥有用户 chown -R postgres:postgres /data chown -R postgres:postgres /data/appData/postgreSql chown -R postgres:postgres /data/logs/postgreSql/
- 切换用户,安装数据库
su postgres #在解压目录进行源码编译安装 #指定安装目录参数: --prefix=/usr/pgsql-12/ ./configure --prefix=/usr/pgsql-12/ --without-readline #安装 make && make install #安装成功后,查看/usr/pgsql-12/目录权限,如果所有者不是postgres则更改权限 ls -al /usr/pgsql-12 chown -R postgres:postgres /usr/pgsql-12/
- 配置环境变量(可以不需要,只是将pg的命令加入环境变量,避免输入全路径执行)
#修改 /etc/profile 文件,在最后增加下面命令 export PATH=/usr/pgsql-12/bin:$PATH LD_LIBRARY_PATH=/usr/pgsql-12/lib export LD_LIBRARY_PATH #刷新配置,是配置生效 source /etc/profile
添加环境变量后,就不需要使用全路径命令,比如初始化数据库
# /usr/pgsql-12/bin/initdb 命令可以直接用 initdb 就可以
- 安装数据库
#1. 初始化数据库,指定数据目录 initdb -D /data/appData/postgreSql/ #2. 启动数据库,指定数据目录和日志文件 pg_ctl -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log start #3. 修改配置文件postgresql.conf vim /data/appData/postgreSql/postgresql.conf #取消 listen_addresses注释,并修改为 listen_addresses = '*' #取消port = 5432 注释,修改为实际端口 port = 15432 #4. 修改配置文件pg_hba.conf vim /data/appData/postgreSql/pg_hba.conf #允许远程访问 #参数:trust 免密; md5 密码登录 #末尾追加一行 host all all 0.0.0.0/0 md5 # 修改配置后重启服务 pg_ctl -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log restart
- 配置数据库服务自启动
#1. 创建postgresql的systemd服务文件,保存为/etc/systemd/system/postgresql.service vim /etc/systemd/system/postgresql.service
在文件中添加一下内容
[Unit] Description=PostgreSQL12.13 Database Server After=network.target [Service] Type=forking User=postgres ExecStart=/usr/pgsql-12/bin/pg_ctl start -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log ExecStop=/usr/pgsql-12/bin/pg_ctl stop -D /data/appData/postgreSql -l /data/logs/postgreSql/server.log Restart=always [Install] WantedBy=multi-user.target
启动PostgreSQL服务,并将其添加到系统启动项中:
sudo systemctl start postgresql sudo systemctl enable postgresql