1. PostgreSQL安装与配置
1.1 环境准备
操作系统: Oracle Linux Server 6.5
IP地址: 192.168.6.177
版本信息: PostgreSQL 9.6.3
安装方式: RPM包
1.2 下载安装包
访问PostgreSQL官方网站,根据您的操作系统类型和版本选择合适的安装包。所需下载的安装包如下:
postgresql96-9.6.3-4PGDG.rhel6.x86_64.rpm
postgresql96-contrib-9.6.3-4PGDG.rhel6.x86_64.rpm
postgresql96-libs-9.6.3-4PGDG.rhel6.x86_64.rpm
postgresql96-server-9.6.3-4PGDG.rhel6.x86_64.rpm
1.3 安装PostgreSQL
将下载的安装包放置在同一目录下,然后执行安装命令:
[root@DB-Server-Node1 ~]# rpm -ivh postgresql96-*.rpm
1.4 安装文件夹说明
RPM包安装过程中,PostgreSQL会在系统中创建以下文件夹:
/var/lib/pgsql: 存放PostgreSQL数据库的默认数据文件
/usr/pgsql-9.6: 存放PostgreSQL的命令、依赖库及相关文档
1.5 将PostgreSQL命令加入系统路径
编辑/etc/profile文件,将PostgreSQL的命令路径添加到系统环境变量中,并使配置立即生效:
[root@DB-Server-Node1 ~]# vi /etc/profile
... ...
# 在文件末尾添加以下内容
export PATH=$PATH:/usr/pgsql-9.6/bin
# 保存并退出后,执行以下命令使配置生效
[root@DB-Server-Node1 ~]# source /etc/profile
# 测试PostgreSQL命令
[root@DB-Server-Node1 share]# postgres --version
1.6 初始化数据库
使用默认的数据文件夹初始化数据库:
[root@DB-Server-Node1 bin]# service postgresql-9.6 initdb
或
[root@DB-Server-Node1 bin]# /etc/init.d/postgresql-9.6 initdb
对于CentOS 7/RedHat 7/Oracle Linux 7,使用以下命令初始化数据库:
[root@DB-Server-Node1 bin]# /usr/pgsql-9.6/bin/postgresql96-setup initdb
使用自定义数据存储目录时,首先创建并设置权限,然后初始化数据库:
# 创建数据存储目录
mkdir -p /data/postgres
# 设置目录权限
chown -R postgres:postgres /data/postgres
# 初始化数据库
su -l postgres -c "/usr/pgsql-9.6/bin/initdb --no-locale -U postgres -E utf8 -D /data/postgres -W"
1.7 添加PostgreSQL环境变量(可选)
编辑/etc/profile文件,添加PostgreSQL的相关环境变量:
[root@DB-Server-Node1 ~]# vi /etc/profile
... ...
# 添加PostgreSQL环境变量
PGDATA=/data/postgres
PGHOST=127.0.0.1
PGDATABASE=postgres
PGUSER=postgres
PGPORT=5432
export PGDATA PGHOST PGDATABASE PGUSER PGPORT
1.8 配置数据库访问
编辑postgres.conf文件,配置数据库的基本参数:
listen_addresses='localhost'
port=5432
max_cOnnections=100
superuser_reserved_cOnnections=3
authentication_timeout=60s
ssl=false
password_encryption=true
shared_buffers=32MB
max_prepared_transactiOns=5
temp_buffers=8MB
work_mem=1MB
maintenance_work_mem=16MB
fsync=on
synchronous_commit=on
full_page_writes=on
wal_buffers=64KB
wal_writer_delay=200ms
commit_delay=0ms
commit_siblings=5
编辑pg_hba.conf文件,配置数据库的访问控制:
[root@DB-Server-Node1 ~]# vi pg_hba.conf
... ...
# 本地Unix域套接字连接
local all all trust
# IPv4本地连接
host all all 127.0.0.1/32 trust
host all all 192.168.6.0/24 trust
# IPv6本地连接
host all all ::1/128 trust
1.9 启动数据库并测试
启动PostgreSQL数据库服务:
[root@DB-Server-Node1 init.d]# service postgresql-9.6 start
使用psql命令测试数据库连接:
[root@DB-Server-Node1 9.6]# psql -h localhost -U postgres -d postgres -W
1.10 修改用户密码
使用psql命令登录数据库,修改默认用户的密码:
[root@DB-Server-Node1 9.6]# su - postgres
-bash-4.2$ psql -h localhost -U postgres -d postgres -w
postgres=# alter user postgres with password '新密码';
1.11 设置服务开机自启动
chkconfig postgresql-9.6 on
2. PostgreSQL日常服务管理
启动数据库: pg_ctl start -D /data/postgres
重启数据库: pg_ctl restart -D /data/postgres
停止数据库: pg_ctl stop -D /data/postgres
强制重启: pg_ctl restart -D /data/postgres -m f
强制停止: pg_ctl stop -D /data/postgres -m f
重新加载配置: pg_ctl reload -D /data/postgres
查看服务状态: pg_ctl status -D /data/postgres
连接数据库: psql -h 127.0.0.1 -U postgres -p 5432 -d postgres -W