CentOS 7 安装 PostgreSQL 11

May 20, 2019 | 分类:Linux

PostgreSQL 官方网站
https://www.postgresql.org

PostgreSQL for Red Hat family
https://www.postgresql.org/download/linux/redhat/


进入页面后,选择版本11,CentOS7,x86_64。
即:PostgreSQL 11 for CentOS7 x86_64。
11centos7x64.jpg

选择好后下面会出现安装命令:
yuminstall.png

#安装RPM仓库:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#安装客户端包:
yum install postgresql11
#安装服务器包:
yum install postgresql11-server
#初始化并运行数据库:
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11

至此PostgreSQL 11已经安装好,接下来进行配置(部分为需要远程连接时的设置)。
postgresql在安装时默认添加用户postgres。
这里先修改postgres密码,一步步键入:
su - postgres
psql
ALTER USER postgres WITH PASSWORD '密码';
\q
exit

这样就修改好了。

部分其它命令:
\l     #列出所有库
\du    #列出所有用户
\d     #列出库下所有表

在CentOS上,默认的PostgreSQL数据目录是/var/lib/pgsql/版本号/data
PostgreSQL的配置文件就在这个目录下/var/lib/pgsql/版本号/data/postgresql.conf,还有一个配置文件也需要稍加关注,那就是访问控制配置文件/var/lib/pgsql/版本号/data/pg_hba.conf

设置postgresql.conf
vi /var/lib/pgsql/11/data/postgresql.conf

#listen_addresses = 'localhost' 前的#号去掉,然后将后面的localhost改为*,任意主机可连接,否则仅本机。
然后将 #port = 5432 前的#去掉,设置端口,默认5432,可以改其它端口。
最后再将 #password_encryption = md5 前面的#号去掉,设置md5加密。
保存退出。
locolhost.jpg

设置pg_hba.conf,设置可远程访问。
vi /var/lib/pgsql/11/data/pg_hba.conf

host1.jpg

将最后三行加#标注掉。
#local   replication     all                                     peer
#host    replication     all             127.0.0.1/32            ident
#host    replication     all             ::1/128                 ident

文件最下面添加:
host    all             all             0.0.0.0/0               md5

host2.jpg

重启,使配置文件生效。
systemctl restart postgresql-11

Firewall开启端口:
firewall-cmd --permanent --add-service=postgresql
systemctl reload firewalld

远程管理可以使用pgAdmin。
https://www.postgresql.org

修改数据库路径:
假设放在/home/pgsqldata/目录下
mkdir /home/pgsqldata

关闭pgsql
systemctl stop postgresql-11

修改配置文件
vi /var/lib/pgsql/11/data/postgresql.conf

data_directory = '/home/pgsqldata'

复制原数据库文件
cp -rf /var/lib/pgsql/11/data/* /home/pgsqldata/

修改权限
chown -R postgres:postgres /home/pgsqldata/
chmod -R 700 /home/pgsqldata/

重新开起数据库
systemctl start postgresql-11

--------------灰色区间内一般不需要--------------
修改启动文件
vi /usr/lib/systemd/system/postgresql-11.service
Environment=PGDATA=/home/pgsqldata/
重新开起数据库
systemctl daemon-reload  //重新加载systemd配置文件。
systemctl start postgresql-11  //开启pgsql。
--------------灰色区间内一般不需要--------------


#新建数据库如遇到
soure database "template1" is being accessed by other users  //template1模板正在被人连接

#进行以下操作:
su - postgres
psql
select pg_terminate_backend(pid) from pg_stat_activity where DATNAME = 'template1';

数据库操作:
su - postgres   #有密码时需要输入密码。
psql

创建数据库
CREATE DATABASE testdb;

创建用户
CREATE USER testuser CREATEDB LOGIN PASSWORD 'testpassword';

将testdb所有权限赋给用户testuser
GRANT ALL ON DATABASE testdb TO testuser;

删除数据库
drop database testdb;

删除用户
drop role testuser;

参考博文:https://blog.csdn.net/rudy5348/article/details/79299162

评论已关闭