# 添加yum源
$ yum -y install https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装PostgreSQL
$ yum -y install postgresql12 postgresql12-server postgresql12-contrib
# 检查版本信息
$ psql --version
psql (PostgreSQL) 12.3
这里需要注意一下,初始化的时候可以指定postgresql的数据目录哦!
1)使用默认数据目录
yum安装的postgresql的默认数据目录为/var/lib/pgsql/12/data
,直接初始化就行
/usr/pgsql-12/bin/postgresql-12-setup initdb
2)使用自己规划好的数据目录
如果已经规划好别的数据目录,可以在初始化的时候用-D
参数指定数据目录。
# 新建数据目录
mkdir -p /data/postgresql/data
# 授权
chown -R postgres:postgres /data/postgresql/data
# 切换到postgres用户,初始化
$ su - postgres
-bash-4.2$ /usr/pgsql-12/bin/initdb -D /data/postgresql/data
# 修改postgresql的system.service文件
vim /usr/lib/systemd/system/postgresql-12.service
Environment=PGDATA=/data/postgresql/data/
# 重新加载系统服务
systemctl daemon-reload
systemctl enable postgresql-12
systemctl start postgresql-12
systemctl status postgresql-12
postgresql会自动完成以下操作:
自动生成一个linux系统用户postgres
:管理数据库的系统用户
数据库用户postgres
:数据库超级管理员
此用户的默认数据库为postgres
可有修改下默认postgres数据库用户的密码:
$ su - postgres
-bash-4.2$ psql
psql (12.3)
Type "help" for help.
postgres=# alter role postgres with password '123456';
ALTER ROLE
配置文件在数据目录中,由于我自定义了数据目录,所以是在/data/postgresql/data
中
cd /data/postgresql/data
vim postgresql.conf
# 修改监听的ip和端口
listen_addresses = '*'
vim pg_hba.conf
#新增下面一行
host all all 0.0.0.0/0 password # 所有的用户通过任意IP都可以使用面膜的方式登录PostgreSQL
重启数据库
systemctl restart postgresql-12
在本机想连接到数据库,需要切换到postgres用户下,在postgres用户下连接数据库,是不需要密码的。
切换 postgres 用户后,提示符变成-bash-4.2$
,使用psql
连接到数据库控制台,此时系统提示符变为postgres=#
,如下:
$ su - postgres
-bash-4.2$ psql
psql (12.3)
Type "help" for help.
postgres=#
数据库创建与修改
# 创建数据库
create database testdb;
# 删除数据库
drop database testdb;
# 重命名数据库(该数据库必须没有活动的连接)
alter database testdb rename to newname;
# 以其他数据库为模板创建数据库(表结构、数据都会复制)
create database newdb template testdb;
# 将查询结果写入文件
\o /tmp/test.txt
select * from test;
# 列状显示
\w
# 再一次\o关闭写入,否则是连续写入的
\o
# 退出控制台
\q
数据库用户创建和授权
# 建立新的数据库用户
create user durant with password '123456';
# 为新用户建立数据库
create database testdb owner durant;
# 把新建的数据库权限赋予新用户
grant all privileges on database testdb to durant;
认证权限的配置文件为:pg_hba.conf
命令行的参数说明
postgres
;postgres
。如果指定-d
参数,则默认访问与用户名名称相同的数据库;localhost
;常见的四种身份验证方式:
要允许远程登录,需要修改配置文件中的监听ip和认证方式。
vim postgresql.conf
# 修改监听的ip和端口
listen_addresses = '*'
vim pg_hba.conf
#新增下面一行
host all all 0.0.0.0/0 password
需要重启生效:
systemctl restart postgresql-12
验证:
[root@localhost ~]# psql -Upostgres -d postgres -h 192.168.0.125 -p 5432
参考文档:
https://www.cnblogs.com/sunhongleibibi/p/11943393.html