Centos 7.3 安装配置 PostgreSQL 9.x

一、安装 PostgresSQL

Centos 7 自带的 PostgresSQL 是 9.2 版的。因为,yum 已经做了国内源,速度飞快,所以直接就用 yum 安装了。依次执行以下命令即可,非常简单。

1 sudo yum -y install postgresql-server postgresql
2 sudo service postgresql initdb
3 sudo chkconfig postgresql on
4 sudo systemctl enable postgresql
5 sudo systemctl start postgresql

如果需要安装最新的版本,那就按官网上的说明来吧,但那个下载速度实在是……

https://www.postgresql.org/download/linux/redhat/

二、控制台 & 基本命令 & 数据库操作

PostgresSQL 默认已经创建了名为 postgres 的超级用户。

执行以下命令,登录控制台

1 sudo -u postgres psql postgres

可以试试以下一些常用的控制台命令

(这一部分的内容,基本是照搬阮兄的博文,我把操作逻辑贯通了一些,另做了少量补充,方便实验,原文在此

# 查看 SQL 命令的解释,比如 \h select
\h
 
# 查看 PostgresSQL 命令列表 
\?
 
# 列出所有数据库
\l
 
# 连接(使用)某个数据库 
\c [database_name]
 
# 列出当前数据库的所有表格
\d
 
# 列出某一张表格的结构
\d [table_name]
 
# 列出所有用户
\du
 
# 打开文本编辑器
\e
 
# 列出当前数据库和连接的信息
\conninfo
 
# 退出控制台
\q

创建名为 testdb 的数据库(注意:不要忘了命令末尾的分号!)

1 CREATE DATABASE testdb;

再用执行 \l,确认数据库已经创建成功了

连接到(使用)testdb 数据库

1 \c testdb

查看连接信息,确认已经连接到 testdb 上了

1 \conninfo

接下来就是数据库的基本操作了,其实就是各种 SQL 语句,例如:

 1 # 创建新表(执行后,用 \d 可以看到当前数据库的表格列表中,出现了 user_tb)
 2 CREATE TABLE user_tb(name VARCHAR(20), signup_date DATE);
 3  
 4 # 插入数据 
 5 INSERT INTO user_tb(name, signup_date) VALUES('张三', '2017-08-03');
 6  
 7 # 选择记录 
 8 SELECT * FROM user_tb;
 9  
10 # 更新数据 
11 UPDATE user_tb set name = '李四' WHERE name = '张三';
12  
13 # 删除记录 
14 DELETE FROM user_tb WHERE name = '李四';
15  
16 # 添加栏位(使用 \d user_tb 查看 SQL 执行前后,表结构的变化)
17 ALTER TABLE user_tb ADD email VARCHAR(40);
18  
19 # 更新结构 
20 ALTER TABLE user_tb ALTER COLUMN signup_date SET NOT NULL;
21  
22 # 更名栏位 
23 ALTER TABLE user_tb RENAME COLUMN signup_date TO signup;
24  
25 # 删除栏位 
26 ALTER TABLE user_tb DROP COLUMN email;
27  
28 # 表格更名 
29 ALTER TABLE user_tb RENAME TO user_dt_new;
30  
31 # 删除表格 
32 DROP TABLE IF EXISTS user_dt_new;

三、创建用户 & 启用密码登录 & shell 命令

真正我们在产品中不会直接使用默认的 postgres 用户,而是自己创建一个用户。

有两种操作方法:

  1. 进入 PostgresSQL 的控制台操作
  2. 使用 PostgresSQL 提供的 shell 命令

第二部分,使用的是控制台操作,这一部分,我们要试试 shell 命令

创建名为 dbuser 的用户并设置密码

1 sudo -u postgres createuser dbuser -P

创建名为 mydb 的数据库,并设置其所有者为我们新创建的用户 dbuser

1 sudo -u postgres createdb -O dbuser mydb

这时候,如果我们尝试用新创建的用户 dubser 登录数据库 mydb

1 psql -U dbuser -d mydb -h localhost

会遇到下面的错误

1 psql: FATAL: Ident authentication failed for user "dbuser"

这是因为 PostgresSQL 默认没有启用密码登录,所以我们要先修改配置启用之

打开配置文件

1 sudo vim /var/lib/pgsql/data/pg_hba.conf

找到下面这两行

1 host    all    all    127.0.0.1/32    ident
2 host    all    all    ::1/128         ident

将 ident 改为 md5

1 host    all    all    127.0.0.1/32    md5
2 host    all    all    ::1/128         md5

保存配置文件后,PostgresSQL

1 sudo systemctl restart postgresql

接下来,我们就可以用新创建的用户 dbuser 愉快地登录数据库啦

1 psql -U dbuser -d mydb -h localhost

注意 -h localhost 不能省略,否则 PostgresSQL 还会走 ident 的验证,会出现下面的错误

1 psql: FATAL: Peer authentication failed for user "dbuser"

四、允许远程访问(连接)

PostgresSQL 默认是不允许远程访问的,如果我们想要在别的机器上访问数据库,还需要做一些设置。

打开 postgresql.conf 文件

1 sudo vim /var/lib/pgsql/data/postgresql.conf

加入下面一行配置,表示允许来自任意 IP 的连接请求

1 listen_addresses = '*'

打开 pg_hba.conf 文件

1 sudo vim /var/lib/pgsql/data/pg_hba.conf

加入下面一行配置,表示对任意 IP 访问进行密码验证

1 host    all    all    0.0.0.0/0    md5

最后,重启 PostgreSQL 使配置生效

1 sudo systemctl restart postgresql

现在就可以远程访问 PostgreSQL 数据库啦

【原文链接】http://www.ipaomi.com/2017/08/03/centos-7-3-安装配置-postgresql-9-x/

    原文作者:PostgreSQL
    原文地址: https://www.cnblogs.com/ipaomi/p/7682260.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞