pg16源码部署
环境:
OS:Centos 7
pg:pg16
说明:pg16已经不提供在centos 7下使用yum方式安装了,只能通过源码编译的方式安装.
1.源码下载:
https://www.postgresql.org/ftp/source/v16.4/
[root@middle soft]# wget https://ftp.postgresql.org/pub/source/v16.4/postgresql-16.4.tar.gz
2.解压源码包
[root@localhost soft]# cd /soft/pg16
[root@localhost pg16]# tar -zxvf postgresql-16.4.tar.gz
3.进入解压后的目录执行
--prefix=xxx 指定的是编译后的源码位置可以按需自定义
[root@localhost pg16]#mkdir /opt/pg16
[root@localhost pg16]#cd /soft/pg16/postgresql-16.4
[root@localhost postgresql-16.4]# ./configure --prefix=/opt/pg16
configure: error: ICU library not found
If you have ICU already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-icu to disable ICU support.
解决办法:
yum install libicu-devel
4.执行make打包
[root@host135 postgresql-16.4]# cd /soft/pg16/postgresql-16.4
[root@localhost postgresql-16.4]#make
[root@localhost postgresql-16.4]#make install
5.如果缺少相应的库文件酌情安装后再次执行
[root@localhost postgresql-16.4]# yum install gcc -y
[root@localhost postgresql-16.4]# yum install zlib-devel
[root@localhost postgresql-16.4]# yum install -y readline-devel
[root@localhost postgresql-16.4]# yum install libicu-devel
6.创建 data文件夹和日志文件夹
[root@localhost local]# mkdir -p /home/middle/pg16/data
[root@localhost local]# mkdir -p /home/middle/pg16/log
7.配置环境变量
root账号
#写入内容
PGHOME=/opt/pg16
PATH=$PGHOME/bin:$PATH:$HOME/bin
退出重新登录
测试备份
export PGPASSWORD=postgres
pg_dump -h 192.168.1.134 -U postgres -p 5432 -d postgres -f /tmp/postgres01.sql
那么这里客户端的安装就完成了,相应的命令也都可以使用了.下面的服务器部署
8.添加用户和配置目录权限
[root@localhost local]# groupadd postgres
[root@localhost local]# useradd postgres
[root@localhost local]# chown -R postgres:postgres /home/middle/pg16
注意创建的用户也需要添加环境变量
PGHOME=/opt/pg16
PATH=$PGHOME/bin:$PATH:$HOME/bin
9.初始化数据库(使用root用户会报错)
[root@localhost local]# su - postgres
[postgres@localhost local]$ /opt/pg16/bin/initdb -D /home/middle/pg16/data
10.修改配置文件(最简配置)
[postgres@localhost local]$ vi /home/middle/pg16/data/postgresql.conf
# 设置所有ip可连接
listen_addresses = '*'
# 设置监听端口
port = 5432
11.配置远程可以访问
[postgres@localhost local]$ vi /home/middle/pg16/data/pg_hba.conf
host all all 0.0.0.0/0 scram-sha-256
12.启动停止命令
[root@localhost ~]# su - postgres
[postgres@localhost local]$ pg_ctl start -D /home/middle/pg16/data -l /home/middle/pg16/log/pg_server.log
[postgres@localhost local]$ pg_ctl stop -D /home/middle/pg16/data -l /home/middle/pg16log/pg_server.log
启动后可以修改postgres账号的密码
[root@host135 ~]# su - postgres
Last login: Tue Nov 19 09:20:23 CST 2024 on pts/2
[postgres@host135 ~]$ psql
psql (16.4)
Type "help" for help.
postgres=# alter user postgres with password 'postgres';
13.查看版本
[postgres@localhost local]$ psql -v
14.Sql命令行登陆
[postgres@localhost local]$ psql -U postgres -d postgres
15.登陆后的常用操作
修改密码
postgres=# ALTER USER postgres WITH PASSWORD '123456';
查看所有用户
postgres=# \du+
查看所有数据库
postgres=# \l
新建数据库
postgres=# CREATE DATABASE test1;
切换连接到另一个数据库
postgres=# \c test1
删除数据库
postgres=# DROP DATABASE test1;
查看当前数据库中的表
postgres=# \dt