一.执行安装命令与查看是否成功:
1.yum install -y postgresql-server postgresql-contrib
2.安装后执行$ psql --version 或 $ psql -V
可显示psql (PostgreSQL) 9.2.24
3.另外,安装的同时还会创建 postgres 用户,Home 为 /var/lib/pgsql,需要切换到 postgres 用户下才可以通过 psql 访问数据库服务。
$ cat /etc/passwd | grep postgres
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
4.初始化:
安装完成之后,不能直接启动数据库进程,需要先执行初始化。
postgresql-setup initdb
初始化过程会生成 PostgreSQL 的配置文件和存放数据库数据的数据库文件,路劲为 /var/lib/pgsql/data。
5.启动服务
$ systemctl start postgresql
二.登录与修改配置文件
1.psql登录
$ psql 或 $ psql -U root 或 $ psql --username root
psql: 致命错误: 角色 "root" 不存在
分析:默认的,只有在 CentOS 中使用 postgres 用户才可以通过 PostgreSQL 的 postgres 用户登录到 postgres 数据库。否则会触发错误:
$ psql -U postgres
psql: 致命错误: 对用户"postgres"的对等认证失败
分析:这是因为 PostgreSQL 实现了很多基于 Bash 的指令,这些指令显然只能在特定的用户下才能使用。
需要修改 pg_hba.conf 中的配置让 Root 用户和 postgres 用户是对等可信的:
安装后的postgres存在于目录/var/lib/pgsql
2.修改配置文件
进入该目录data下,可以看到以下配置文件
postgresql.conf 和 pg_hba.conf
①修改pg_hba.conf
local all all trust
host all all 0.0.0.0/0 md5
host all all ::1/128 ident
②修改postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
listen_addresses = '*'
3.重启服务生效
systemctl restart postgresql.service
查看命令$ netstat -npltu | grep postgres
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 5966/postgres
tcp6 0 0 :::5432 :::* LISTEN 5966/postgres
4.再次登录
$ psql -U postgres
成功显示
psql (9.2.24)
Type "help" for help.
三.远程登录
远程登录
注意,在 PostgreSQL Server 本地进行登录是不需要提供密码的,但远程登录需要。所以为了启用远程登录,首先需要设定用户的密码。有两种方式:
执行 \password 指令。
执行 alter user postgres with password ‘{your_pwd}’ SQL 语句。
默认的,PostgreSQL 内置了 postgres 数据库和 postgres 用户,所以我们已修改 postgres 用户的密码为例:
1.使用 postgres 账户登录到 postgres 数据库;
psql -d postgres -U postgres
2.执行 \password 指令,并输入 postgres 用户的密码。
postgres=# \password
输入新的密码:
再次键入:
postgres=# \q
3.修改密码后,使用 postgres 账户进行远程登录就要使用密码进行身份认证了。
$ psql --host=172.18.22.204 --port=5432 --dbname=postgres --username=postgres -W
用户 postgres 的口令:
psql: 致命错误: 用户 "postgres" Password 认证失败
四.创建用户与数据库
1.创建用户
create user ‘{username}’ with password '{password}';
2.创建数据库
create database ‘{database}’ owner ‘{username}’;
3.赋权限
将数据库权限全部赋给某个用户
grant all on database ‘{database}’ to ‘{username}’;
4.通过文件导入数据库
psql -U ‘{username}’ ‘{database}’ < /data/dum.sql