postgresql-安装以及基本使用

环境:centos7.4 

一、安装

1. 更新系统

$ yum update

2. 安装

  这里安装系统默认的postgresql 9.2

$ yum install postgresql-server

3. 初始化数据库

$ postgresql-setup initdb

4. 启动数据库

$ systemctl start postgresql
$ systemctl enable postgresql

5. 查看服务的运行状态

$ systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since 六 2019-07-13 08:01:08 EDT; 5min ago
 Main PID: 10401 (postgres)
   CGroup: /system.slice/postgresql.service
           ├─10401 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
           ├─10402 postgres: logger process   
           ├─10404 postgres: checkpointer process   
           ├─10405 postgres: writer process   
           ├─10406 postgres: wal writer process   
           ├─10407 postgres: autovacuum launcher process   
           └─10408 postgres: stats collector process   

7月 13 08:01:07 tools systemd[1]: Starting PostgreSQL database server...
7月 13 08:01:08 tools systemd[1]: Started PostgreSQL database server.
[root@tools ~]# 

6. 给默认超级数据账号postgres 增加密码:

[root@tools ~]# su - postgres
上一次登录:六 7月 13 08:41:17 EDT 2019pts/0 上
-bash-4.2$ psql
psql (9.2.24)
Type "help" for help.

postgres=# ALTER USER postgres WITH PASSWORD 'xxxxxx';
ALTER ROLE

7. 默认postgresql-server 监听127.0.0.1,这样远程机器不能访问,我们需要开发给其他机器访问:

   修改 /var/lib/pgsql/data/postgresql.conf 中的listen_addresses参数为'*',

listen_addresses = '*'                  # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)

  重启,使其修改生效:

# systemctl restart postgresql

 8. postgresql-server 默认所有账号只允许本地访问,这里我们修改为所有远程主机开放所有数据库:

修改:/var/lib/pgsql/data/pg_hba.conf,增加一下配置:

host    all             all             0.0.0.0/0            md5

reload, 使其生效:

# systemctl reload postgresql

 当然,我们在生产环境不能这样做,需要精细到那些数据库只允许哪些账号连接,详细可以查看pg_hba.conf中的说明。 

二、使用

1. 创建数据库账号

安装postgresql默认创建了postgres的系统账号,该账号(postgres)也是postgresql数据库的超级账号,一般不会使用该账号。

切换到postgres系统账号

[root@tools ~]# su - postgres
上一次登录:六 7月 13 08:08:56 EDT 2019pts/0 上

创建数据库账号

$ psql 
psql (9.2.24)
Type "help" for help.

postgres=# create user testuser login password 'xxxxxx';
CREATE ROLE

2. 创建数据库

$ psql 
psql (9.2.24)
Type "help" for help.

postgres=# create database testdb;
CREATE DATABASE

#赋予数据库所有的权限给testuser
postgres=# grant all on database testdb to testuser;
GRANT

我们也可以使用命令行方式创建数据库:

[root@tools ~]# createdb -U postgres -O testuser  --encoding=UTF-8 testdb  
口令: 
[root@tools ~]# psql -U postgres -l
用户 postgres 的口令:
                                     资料库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
           |          |          |             |             | zyh=CTc/postgres
 testdb    | testuser | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 行记录)

三、问题

1. 切换账号时,提示 "对等认证失败"

-bash-4.2$ psql -U testuser testdb
psql: 致命错误:  对用户"testuser"的对等认证失败

  解决方法:修改:/var/lib/pgsql/data/pg_hba.conf

 把认证方法从peer改为md5,如下图

reload一次postgres服务,让修改生效:

[root@tools ~]# systemctl reload postgresql

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值