欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux安装PostgreSQL

程序员文章站 2022-05-27 16:13:41
...
  • 安装postgresql仓库:
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
  • 安装客户端软件包:
yum install postgresql96
  • 安装服务端软件包:
yum install postgresql96-server
  • 初始化数据库并设置开机启动:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6
  • 修改配置监听网段
vim /var/lib/pgsql/9.5/data/postgresql.conf
listen_addresses = '*'     #监听任何网段地址
  • 允许远程主机登录
vim /var/lib/pgsql/9.6/data/pg_hba.conf
host    all   all   0.0.0.0/0   md5

TYPE 表示主机类型,值可能为: 若为 `local` 表示是unix-domain的socket连接, 若为 `host` 是TCP/IP socket 若为 `hostssl` 是SSL加密的TCP/IP socket

DATABASE 表示数据库名称,值可能为: `all` ,`sameuser`,`samerole`,`replication`,`数据库名称` ,或者多个 数据库名称用 `逗号`,注意ALL不匹配 replication

USER 表示用户名称,值可以为: `all`,`一个用户名`,`一组用户名` ,多个用户时,可以用 `,`逗号隔开, 或者在用户名称前缀 `+` ;在USER和DATABASE字段,也可以写一个单独的 文件名称用 `@` 前缀,该文件包含数据库名称或用户名称

ADDRESS 可以为 `主机名称` 或者`IP/32(IPV4) `或 `IP/128(IPV6)`,主机 名称以 `.`开头,`samehost`或`samenet` 匹配任意Ip地址

METHOD 可以为"trust", "reject", "md5", "password", "scram-sha-256",
"gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert"
注意 若为`password`则发送的为明文密码

修改配置文件pg_hba.conf 中的参数,必须重启 `postgreSql`服务,若要允许其它IP地址访问
该主机数据库,则必须修改 `postgresql.conf` 中的参数 `listen_addresses` 为 `*`

示例:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all            all             10.10.56.17/32             md5

允许IP地址为10.10.56.17的所有用户可以通过MD5的密码验证方式连接主机上所有的数据库。

host 参数表示安装PostgreSQL的主机 all

第一个all 表示该主机上的所有数据库实例 all

第二个all 表示所有用户

10.10.56.17/32 表示需要连接到主机的IP地址,32表示IPV4

md5 表示验证方式  

 

  • 重新加载postgresql
systemctl reload postgresql-9.6
  • 查看版本号
psql --version
  • 以postgres用户登陆终端
su - postgres
  • 创建新用户dbuser
-bash-4.2$ createuser -s dbuser

-s表示是以superuser的身份创建用户

  • 创建属于dbuser的数据库mydb
-bash-4.2$ createdb -O dbuser mydb
  • 以dbuser的身份登录mydb数据库
psql -U dbuser -d mydb
  • 以postgres用户登录postgres数据库,postgres是安装默认创建的用户,没有登录密码
sql postgres
  • 查看库列表
postgres=# \l
  • 查看用户列表
postgres=# \du
  • 退出
postgres=# \q
  • 创建root用户,createdb是权限,还有其他权限,比如superuser、createuser等,createdb是最小的权限
postgres=# create user root createdb;
  • 修改root的密码为123456
postgres=# alter user root password '123456';
  • 创建库testdb
postgres=# create database testdb owner root;
  • 删除testdb库
postgres=# drop database testdb;