作者:陈广 日期:2018-6-6
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2 为基础的对象关系型数据库管理系统(ORDBMS)。经过十几年的发展,PostgreSQL 是世界上可以获得的最先进的开放源码的数据库系统,它提供了多版本并行控制,支持几乎所有 SQL 构件(包括子查询,事务和用户定义类型和函数)。官网地址为:https://www.postgresql.org/。官网中针对每个版本都有详细的文档。PostgreSQL 10 版本的文档为 3311 页,太可怕了!
由于我的服务器使用的是 CentOS 7.3 64位,所以本文针对此版本操作系统讲解 PostgreSQL 10的安装,本文编写时,PostgreSQL最新的稳定版本是10。
首先打开网址:https://yum.postgresql.org/repopackages.php。找到对应的 PostgreSQL 版本及操作系统,如下图所示:
在找到的选项中单击鼠标右键,选择【复制链接地址】
将 RPM 包的链接地址复制到剪贴板。
以 root 模式进入 CentOS 7,输入yum install
命令,并将刚才复制的链接粘贴至命令后面,然后回车,如下图所示:
输入:y
,然后回车,安装完毕。
输入如下命令:
yum install -y postgresql10-server postgresql10-contrib
这里需要注意:postgresql
后面的数字是数据库版本号,请按实际情况输入相应的版本号,如果是 9.6 版本则替换为96
。
安装完毕后会出现如下图面:
接下来需要初始化 PostgreSQL 数据库方能使用,输入如下命令:
cd /usr/pgsql-10/bin
进入到 bin 目录,注意输入相应版本号。然后输入ls
命令查看此文件夹下的文件,如下图所示:
注意 postgresql-10-setup 文件,我们将使用它来初始化数据库。
输入如下命令:
/usr/pgsql-10/bin/postgresql-10-setup initdb
注意其中postgresql-10-setup
是我们刚才找到的文件名。完成后如下图所示:
启动 PostgreSQL 使用命令:
systemctl start postgresql-10
注意使用相应版本号。
设置 PostgreSQL 开机启动可使用命令:
systemctl enable postgresql-10
关闭 PostgreSQL 使用命令:
systemctl stop postgresql-10
这里先使用启动命令启动 PostgreSQL 命令,以执行之后的操作。
PostgreSQL 在安装过程中会自动创建一个默认用户,用户名为:postgres。密码为空。我们可以使用这个用户名登录并操作数据库,第一步还是先给数据库加上一个密码吧。
使用如下命令切换至默认用户:
su - postgres
接下来登录数据库:
psql -U postgres
修改 postgres 用户的密码:
postgres=# ALTER USER postgres with encrypted password '123456';
这里我们把密码改为了123456
。注意,最后的分号不要漏了。
输入\q
并回车,退出数据库。
输入exit
并回车,退出用户。
操作过程如下图所示:
首先进入配置文件所在文件夹:
cd /var/lib/pgsql/10/data
ls
一下,如下图所示:
【postgresql.conf】就是配置文件。
用 vi 打开此配置文件:
vi postgresql.conf
接下来在 vi 中按冒号:
进入命令模式,输入命令:
/listen_addresses
然后按回车,搜索到 listen_addresses 选项,如下图:
这里
#
号后面的全部为注释。
*
表示对所有 IP 开放。默认为localhost
,表示只对本机开放。如果想仅对部分 IP 开放,则将多个 IP 写入,并用,
(逗号+空格)隔开。这里我们先将 listen_addresses 改为'*'
。按i
键进入 vi 的编辑模式,进行更改。先将localhost
改为*
,然后去掉 listen_addresses 前面的#
号。更改后的效果如下:
编辑完后,按 esc 键退出编辑模式,按
:
进入命令模式,输入wq
并回车,以保存所做修改。需要注意,现在处于学习模式,可以用*
,生产状态下千万不要这么设置。
不要退出刚才的目录,想要远程访问,还需要设置另一个文件:
vi pg_hba.conf
找到# IPv4 local connections:
,在下方加一行设置:
host all all 0.0.0.0/0 md5
注意长段空格用的是Tab
符。添加后的效果如下:
设置完后需要重启数据库以使设置生效:
systemctl restart postgresql-10.service
至此,我们已经可以远程访问此数据库了。
;