系统自带版本9.x略低,近几次升级功能较多,本次安装最新版本。
一、更新源
地址:https://yum.postgresql.org/repopackages.php
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
二、安装postgresql
先查看postgresql源
yum list | grep postgresql
我们需要安装的是这两个。postgresql10-contrib postgresql10-server
yum install postgresql10-contrib postgresql10-server -y
三、初始化数据库
Postgresql安装目录是/usr/pgsql-10,而Postgresql的数据目录是/var/lib/pgsql/版本号/data目录
在这里,如果在装系统开始分配var空间足够大则可以继续,如果分配var空间不够,我们需要更改数据目录,在这里,我们假设var空间足够大。直接开始初始化。
/usr/pgsql-10/bin/postgresql-10-setup initdb
四、启动数据库并设置开机启动
sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10.service
五、修改密码
修改PostgreSQL数据库的默认用户postgres的密码(注意不是linux系统帐号)
第一步:修改postgresql密码
1、PostgreSQL登录(使用psql客户端登录)
# sudo -u postgres psql
//其中,sudo -u postgres 是使用postgres 用户登录的意思
//PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,所以这里设定为'postgres'
2.修改PostgreSQL登录密码:
postgres=# ALTER USER postgres WITH PASSWORD 'postgres';
//postgres=#为PostgreSQL下的命令提示符
3.退出PostgreSQL psql客户端
postgres=# \q
PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,我人需要修改为指定的密码,这里设定为’postgres’
第二步:修改linux系统的postgres用户的密码(密码与数据库用户postgres的密码相同)
1.删除PostgreSQL用户密码
# sudo passwd -d postgres
passwd: password expiry information changed.
//passwd -d 是清空指定用户密码的意思
2.设置PostgreSQL用户密码
PostgreSQL数据默认会创建一个linux用户postgres,通过上面的代码修改密码为'postgres’(这取决于 第二步中的密码,只要与其相同即可)。
现在,我们就可以在数据库服务器上用 postgres帐号通过psql或者pgAdmin等等客户端操作数据库了。
#sudo -u postgres passwd 输入新的 UNIX 密码: 重新输入新的 UNIX 密码:
passwd:已成功更新密码
六、默认情况下postgresql是不用密码不支持远程登录的。我们需要修改配置文件
vi /var/lib/pgsql/10/data/pg_hba.conf
md5 改为 password
保存退出
我们改远程访问
vi /var/lib/pgsql/10/data/postgresql.conf
修改
重启postgresql
systemctl restart postgresql-10
*postgres修改端口后使用psql登录报错
could not change directory to "/root": Permission denied psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
其实报错原因就是修改端口后,系统默认存放sokect的文件名字修改了,导致使用原来的文件名无法找到该文件,这里postgres通过PGPORT 来作为该文件命名的一部分所以需要在/etc/profile 添加
export PGPORT=15432
然后
source /etc/profile
测试
su postgres psql