怎样安装PostgreSQL(CentOS7)

2018年8月9日 | 分类: 【技术】

【环境】

CentOS版本:

输入命令:

cat /etc/redhat-release 

输出:

CentOS Linux release 7.5.1804 (Core)

输入命令:

uname -a

输出:

Linux vultr.guest 4.17.13-1.el7.elrepo.x86_64 #1 SMP Mon Aug 6 14:16:00 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux

【安装(yum)】

yum安装:

yum install postgresql-server

默认安装:postgresql-server-9.2.23

初始化数据库:

postgresql-setup initdb

输出:

Initializing database ... OK

设置自动启动:

systemctl enable postgresql.service
/bin/systemctl start postgresql.service

设置认证模式:

参考:https://www.postgresql.org/message-id/[email protected]

编辑 /var/lib/pgsql/data/pg_hba.conf ,

# IPv4 local connections:
host    all             all             127.0.0.1/32            password

使用postgres用户在PostgreSQL控制台生成其他用户和新数据库:

新建一个Linux新用户 dbuser :

sudo adduser dbuser

修改默认用户postgres的密码:

切换到postgres用户:

sudo su - postgres

返回:

-bash-4.2$

使用psql命令登录PostgreSQL控制台,输入命令:

psql

返回:

psql (9.2.23)
Type "help" for help.

postgres=#

这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为”postgres=#”,表示这时已经进入了数据库控制台。以下的命令都在控制台内完成。

在数据库控制台输入命令:

\password postgres

输入密码,以及重复输入密码: 4zAGbSxBOXV9Rnxy

创建数据库用户dbuser(刚才创建的是Linux系统用户),并设置密码:

CREATE USER dbuser WITH PASSWORD 'M4MLnFKYsNhpwfmv';

返回:CREATE ROLE

创建用户数据库,这里为exampledb,并指定所有者为dbuser:

CREATE DATABASE exampledb OWNER dbuser;

返回:CREATE DATABASE

将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限:

GRANT ALL PRIVILEGES ON DATABASE exampledb to dbuser;

返回:GRANT

重新启动postgresql的服务:

Ctrl+D 2次,退出数据库控制台。

重启postgresql:

/bin/systemctl restart postgresql.service

用户 postgres 登录测试:

psql -h 127.0.0.1 -p 5432 -U postgres

返回:

Password for user postgres:

输入密码:4zAGbSxBOXV9Rnxy

返回:

psql (9.2.23)
Type "help" for help.

postgres=#

用户 dbuser 登录数据库 exampledb :

psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

返回:

Password for user dbuser:

输入密码:M4MLnFKYsNhpwfmv

返回:

psql (9.2.23)
Type "help" for help.

exampledb=>