本文涉及 CentOS 7 下 PostgreSQL 的 yum 安装, 访问配置及简单使用.
一.验证环境
1. 操作系统
CentOS-7-x86_64-Everything-1511
2. PostgresSQL 版本
PostgreSQL 9.6.3:https://www.postgresql.org/download/linux/RedHat/
二.安装
1. 安装 rpm
[root@psql_master ~]# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
2. 安装客户端
[root@psql_master ~]# yum install -y postgresql96
3. 安装服务器端
- #yum 安装 PostgreSQL, 默认会建一个名为 "postgres" 的系统账号, 用于执行 PostgreSQL;
- # 同时数据库中也会生成一个名为 "postgres" 的数据库用户, 且密码已自动生成, 需要进入数据库后修改;
- #PostgreSQL 在数据库用户同名的系统账号下登录免密.
- [root@psql_master ~]# yum install -y postgresql96-server
4. 初始化
[root@psql_master bin]# /usr/pgsql-9.6/bin/postgresql96-setup initdb
5. 设置开机启动
[root@psql_master ~]# systemctl enable PostgreSQL-9.6
6. 启动
[root@psql_master ~]# systemctl start PostgreSQL-9.6
三.配置使用
1. 修改用户密码
- #yum 安装 PostgreSQL, 默认会建一个名为 "postgres" 的系统账号, 用于执行 PostgreSQL;
- [root@psql_master ~]# su - postgres
- # 切换用户后, 提示符变更为 "-bash-4.2$";
- # 同时数据库中也会生成一个名为 "postgres" 的数据库用户, 且密码已自动生成;
- #PostgreSQL 在数据库用户同名的系统账号下登录免密;
- -bash-4.2$ psql -U postgres
- # 进入数据库后修改密码;
- postgres=# alter user postgres with password 'postgres@123'
2. 允许远程访问
- # 配置文件中, 默认只能本机访问 PostgreSQL;
- # 修改 listen_addresses = 'localhost'为 listen_addresses = '*', 允许所有远程访问;
- # 修改配置文件需要重启服务.
- [root@psql_master ~]# sed -i "s|#listen_addresses ='localhost'|listen_addresses ='*'|g" /var/lib/pgsql/9.6/data/PostgreSQL.conf
3. 主机认证
- # 在第 82 行之后,"IPv4 local connections" 下新增允许的客户端;
- #"host" 代表主机类型, 第一个 "all" 代表 db , 第二个 "all" 代表 user ,"172.29.3.67/32" 代表 client ip,"trust" 代表认证方式;
- # 认证方式除 "trust" 外, 还有 "peer", "ident", "md5", "password" 等, 具体可参考 pg-hba 文件: https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
- # 修改 pg.hba 文件需要重启服务.
- [root@psql_master ~]# VIM /var/lib/pgsql/9.6/data/pg_hba.conf
- host all all 172.29.3.67/32 trust
4. 设置环境变量
- [root@psql_master ~]# VIM /etc/profile
- export PATH=$PATH:/usr/pgsql-9.6/bin
- [root@psql_master ~]# source /etc/profile
5. 重启服务
- [root@psql_master ~]# systemctl restart PostgreSQL-9.6
- 6. iptables
- #PostgreSQL 默认开启 tcp5432 端口
- [root@psql_master ~]# VIM /etc/sysconfig/iptables
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
- [root@psql_master ~]# service iptables restart
四.使用验证
1. 查看端口
[root@psql_master ~]# netstat -tunlp
2. 简单使用
1) 创建用户
postgres=# create user postuser1 with password 'user1@123';
2) 创建数据库
- # 同时指定数据库的所有者
- postgres=# create database postdb1 owner postuser1;
3) 数据库赋权
- # 未赋权则账户只能登录控制台
- postgres=# grant all privileges on database postdb1 to postuser1;
4) 登录新建数据库
- # 在操作系统层使用新建的账号登录新建的数据库, 登录后提示符为 "postdb1=>";
- # 如果在 postgres 账户下直接使用 "postgres=# \c postdb1;" 登录, 则登录用户依然是 postgres,
- -bash-4.2$ psql -U postuser1 -d postdb1 -h 127.0.0.1 -p 5432
5) 创建表
- postdb1=> create table tb1(
- id int primary key,
- name VARCHAR(20),
- salary real
- );
6) 插入数据
- postdb1=> insert into tb1(
- id, name, salary)
- values(
- 101, 'Mike', 5000.00
- );
7) 查询
postdb1=>select * from tb1;
3. pgadmin 连接 PostgreSQL
pgadmin 下载地址: https://www.pgadmin.org/download/
截至 2017-05-19 的版本是: pgAdmin 4 v1.5
1) 添加服务器
打开 pgadmin-> 添加新的服务器 ->(通常标签) 名称自定义 ->(connection 标签) 主机名称与 PostgreSQL 用户密码按需填写, 其余可采用默认配置 -> 保存.
2) 图形化查看
来源: http://www.linuxidc.com/Linux/2019-07/159617.htm