Centos安装postgresql

一.执行安装命令与查看是否成功:

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

你可能感兴趣的:(centos,postgresql,linux)