PostgreSql 2017-11-08
安装环境准备
下载安装包
访问PostgreSQL网站
PostgreSQL网站
根据操作系统类型和版本下载相应的安装包
需要下载以下的安装包:
安装PostgreSQL
将Postgres安装包放置在同一个文件夹中, 执行安装命令
[root@DB-Server-Node1 ~]# rpm -ivh postgresql96-*.rpm Preparing... ########################################### [100%] 1:postgresql96-libs ########################################### [ 25%] 2:postgresql96 ########################################### [ 50%] 3:postgresql96-contrib ########################################### [ 75%] 4:postgresql96-server ########################################### [100%]
安装文件夹说明
通过RPM包安装, Postgres安装程序会在/var和/usr下创建文件夹。
/var/lib/pgsql: 用于存放Postgres数据库默认的数据文件夹
/usr/pgsql-${version}: 用于存放Postgres数据库的命令、依赖库及文档目录等信息
将Postgres命令加入系统路径
修改/etc/profile文件, 将Postgres命令加入系统路径,并测试
[root@DB-Server-Node1 ~]# vi /etc/profile ... ... # 在文件最后加入以下语句 export PATH=$PATH:/usr/pgsql-9.6/bin # 保存退出后, 执行source命令, 让配置即时生效 [root@DB-Server-Node1 ~]# source /etc/profile # 测试Postgres命令 [root@DB-Server-Node1 share]# postgres --version postgres (PostgreSQL) 9.6.3
初始化数据库
使用Postgres数据库默认的数据文件存储目录
[root@DB-Server-Node1 bin]# service postgresql-9.6 initdb 或者 [root@DB-Server-Node1 bin]# /etc/init.d/postgresql-9.6 initdb
[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"
添加Postgres环境变量(可选)
[root@DB-Server-Node1 ~]# vi /etc/profile ... ... # 添加Postgres环境变量 PGDATA=/data/postgres PGHOST=127.0.0.1 PGDATABASE=postgres PGUSER=postgres PGPORT=5432 export PGDATA PGHOST PGDATABASE PGUSER PGPORT
修改/etc/init.d/postgresql-9.6中的变量(使用自定义数据目录)
如果使用自定义数据存放目录,而不是使用PostgreSQL默认数据目录时, 需要修改启动文件中的PGDATA变量,将PGDATA目录指向自定义的数据目录, 这样在使用service posgresql-9.6 start
命令时才能正确启动。
[root@DB-Server-Node1 ~]# vi /etc/init.d/postgres-9.6 # 修改默认文件目录到指定的数据目录 PGDATA=/data/postgres # 保存后退出 :wq!
配置数据库访问
修改postgres.conf文件
主要配置参数详解:
修改pg_hba.conf
[root@DB-Server-Node1 ~]# vi pg_hba.conf ... ... # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 192.168.6.0/24 trust # IPv6 local connections: host all all ::1/128 trust
配置说明:
TYPE DATABASE USER ADDRESS METHOD
192.168.1.0/24
表示192.168.1.0网段可以连接启动数据库并测试数据库
启动Postgres数据库
[root@DB-Server-Node1 init.d]# service postgresql-9.6 start Starting postgresql-9.6 service: [ OK ]
测试数据库
使用psql命令进行测试。
psql命令详解:
示例如下:
[root@DB-Server-Node1 9.6]# psql -h localhost -U postgres -d postgres -W Password for user postgres: psql (9.6.3) Type "help" for help. postgres=#
修改用户密码
使用默认脚本service postgresql initdb
或/usr/pgsql-9.6/bin/postgresql96-setup initdb
初始化数据库时,需要修改用户的密码。在修改Postgres用户密码时,需要确保以下条件:
配置"pg_hba.conf"时需要确定服务器本地址的验证方法为trust, 即:host all all 127.0.0.1/32 trust
如果为peer|indent|md5方法时,需要将其修改为trust, 否则登录时会提醒输入用户密码。切换系统用户为postgres, 通过psql -h localhost -U postgres -d postgres
登录Postgres数据库,进入数据后,使用alter user postgres with password '设置的新密码'
来为用户修改默认密码。
示例如下:
[root@DB-Server-Node1 9.6]# su - postgres -bash-4.2$ psql -h localhost -U postgres -d postgres -w Password for user postgres: psql (9.6.3) Type "help" for help. postgres=# alter user postgres with password '123456'; ALTER ROLE postgres=#
设置服务开机自启动