【环境】
CentOS版本:
输入命令:
cat /etc/redhat-release
输出:
CentOS release 6.10 (Final)
输入命令:
uname -a
输出:
Linux host.localdomain 4.17.11-1.el6.elrepo.i686 #1 SMP Sat Jul 28 09:09:24 EDT 2018 i686 i686 i386 GNU/Linux
【安装(yum)】
yum安装:
yum install postgresql-server
默认安装 postgresql-server.i686 0:8.4.20-8.el6_9
初始化数据库:
service postgresql initdb
输出:
Initializing database: [ OK ]
设置自动启动:
chkconfig postgresql on service postgresql start
输出:
Starting postgresql service: [ OK ]
设置认证模式:
参考: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 (8.4.20) 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:
service postgresql restart
输出:
Stopping postgresql service: [ OK ] Starting postgresql service: [ OK ]
用户 postgres 登录测试:
psql -h 127.0.0.1 -p 5432 -U postgres
返回:
Password for user postgres:
输入密码:4zAGbSxBOXV9Rnxy
返回:
psql (8.4.20) 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 (8.4.20) Type "help" for help. exampledb=>