环境:
OS:Centos 7
pg:pg16
说明:pg16已经不提供在centos 7下使用yum方式安装了,只能通过源码编译的方式安装.
1.源码下载:
https://www.postgresql.org/ftp/source/v16.4/
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 /usr/local/postgresql/data
[root@localhost local]# mkdir /usr/local/postgresql/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]# useradd postgres
[root@localhost local]# chown -R postgres:postgres /usr/local/postgresql/
9.初始化数据库(使用root用户会报错)
[root@localhost local]# su postgres
[postgres@localhost local]$ /opt/pg16/bin/initdb -D /usr/local/postgresql/data/
10.修改配置文件
[postgres@localhost local]$ vi /usr/local/postgresql/data/postgresql.conf
# 设置所有ip可连接
listen_addresses = '*'
# 设置监听端口
port = 5432
11.配置远程可以访问
[postgres@localhost local]$ vi /usr/local/postgresql/data/pg_hba.conf
# 所有数据库(all)、所有用户(all)、从本机(127.0.0.1/32)均可免密访问(trust)
host all all 0.0.0.0/0 trust
12.启动停止命令
[postgres@localhost local]$ pg_ctl start -l /usr/local/postgresql/log/pg_server.log
[postgres@localhost local]$ pg_ctl stop -l /usr/local/postgresql/log/pg_server.log
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