1 官网获取最新postgresql的rpm源下载路径
(1)网址
https://www.postgresql.org/download/linux/redhat/
(2)安装RPM源
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2 安装pg12
(1)安装pg12服务
#yum install -y postgresql12-server
(2)初始化数据库
#/usr/pgsql-12/bin/postgresql-12-setup initdb
(3)设置自启动和启动
#systemctl enable postgresql-12
#systemctl start postgresql-12
(4)修改用户密码
PostgreSQL 安装完成后,会建立一下‘postgres’用户,用于执行PostgreSQL,数据库中也会建立一个’postgres’用户,默认密码为自动生成,需要在系统中改一下。
初次安装后,默认生成一个名为postgres的数据库和一个名为postgres的数据库用户。
(1)输入su - postgres并回车,切换至用户。
(2)输入psql -U postgres并回车,登录数据库。
(3)输入ALTER USER postgres with encrypted password 'abc123';(不要漏了“;”)
并回车,设置默认用户postgre的密码,此处密码为abc123,可自行修改。
(4)输入\q并回车, 退出数据库。
(5)输入exit并回车,退出用户。
3 开启远程访问
(1)开启远程访问
#vi /var/lib/pgsql/12/data/postgresql.conf
修改#listen_addresses = ‘localhost’ 为 listen_addresses=’*’,此处的 * 也可以改为任何你想开放的服
务器IP
(2)信任远程连接
#vi /var/lib/pgsql/12/data/pg_hba.conf
在IPv4处添加一行,结果如下:
#IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all ipaddress/port trust
这里的ipaddress和port就是你想开放的IP地址和端口,如果没有IP限制的话,那么填写0.0.0.0/0
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
最后一项method解析如下:
trust 任何连接都允许,不需要密码
reject 拒绝符合条件(前面几个条件)的请求
MD5 接收一个MD5加密过的密码
password 接收一个密码来登陆,只在可信的网络使用这种方式
gss 使用gssapi认证,只在tcp/ip连接可用
sspi 只在windows可用的一种方式
krb5 不常用,只在TCP/IP可用
ident 使用操作系统用户名认证,验证它是否符合请求的的数据库用户名
ldap 使用LDAP服务器认证
cert 使用ssl客户端认证
pam 使用操作系统的pam模块服务
(3)重启服务
#systemctl restart postgresql-12
4 使用
下面使用postgres用户,来生成其他用户和新数据库,使用PostgreSQL控制台
(1)新建一个Linux新用户,自定义名字即可
#adduser dbuser
(2)切换到postgres用户
#su - postgres
(3)使用psql命令登录PostgreSQL控制台
-bash-4.2$ psql
这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。
(4)为postgres用户设置一个密码abc123
postgres=# \password postgres
(5)创建数据库用户dbuser,并设置密码bigdata
postgres=# create user dbuser with password ‘bigdata’;
(6)创建用户数据库exampledb,并指定所有者为dbuser
postgres=# create database exampledb owner dbuser;
(7)赋予权限
将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。
postgres=# grant all privileges on database exampledb to dbuser;
postgres=# \q
退出控制台,也可以ctrl+D
(8)登录数据库
#psql -U dbuser -d exampledb -h 192.168.236.129 -p 5432
密码bigdata
上面命令的参数含义如下:-U指定用户,-d指定数据库,-h指定服务器,-p指定端口。
输入上面命令以后,系统会提示输入dbuser用户的密码。输入正确,就可以登录控制台了。