一、PostgreSQL的yum安装
1. 导入yum源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2. 安装PostgreSQL服务
sudo yum install -y postgresql12 postgresql12-server
#安装PostgreSQL 9.5就是 yum install postgresql95 postgresql95-server 依此类推
3. 初始化数据库
# yum安装的postgresql的默认数据目录为/var/lib/pgsql/12/data,直接初始化就行,只能运行一遍,否则报错
# 使用自己的数据目录,参考https://blog.csdn.net/wc1695040842/article/details/106780666
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
4. 启动PostgreSQL服务
sudo systemctl start postgresql-12 #启动PostgreSQL服务
sudo systemctl enablepostgresql-12 #设置PostgreSQL服务为开机启动
二、配置PostgreSQL
postgresql会自动完成以下操作:
. 自动生成一个linux系统用户postgres:管理数据库的系统用户
修改该linux用户密码的方法:
sudo passwd -d postgres # 步骤一:删除用户postgres的密码
sudo -u postgres passwd # 步骤二:设置用户postgres的密码,系统提示输入新的密码
. 数据库用户postgres:数据库超级管理员
. 此用户的默认数据库为postgres
1. 修改默认postgres数据库用户的密码
sudo su postgres # 进入postgres用户
psql
alter user postgres with password 'postgres';
\q # 退出
2. 配置参数文件:主要是配置postgresql.conf 和 pg_hba.conf
postgresql.conf 针对实例的配置
sudo su postgres # 进入postgres用户,其他用户没有权限修改下面的文件
vi /var/lib/pgsql/12/data/postgresql.conf
listen_addresses = '*' # 默认localhost 改为 * what IP address(es) to listen on;
port = 1988 # 默认5432 改为 1988(change requires restart)
max_connections = 1000 # 默认100太少改为1000(change requires restart)
pg_hba.conf 针对数据库访问的控制
sudo su postgres # 进入postgres用户,其他用户没有权限修改下面的文件
vi /var/lib/pgsql/12/data/pg_hba.conf
host all all 0.0.0.0/0 password # 将此行添加至文末,其意义是允许 所有IP
常见的四种身份验证方式:
trust:凡是能连接到服务器的,都是可信任的。只需要提供数据库用户名,可以没有对应的操作系统同名用户;
password 和 md5:对于外部访问,需要提供 psql 用户名和密码。对于本地连接,提供 psql 用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password 和 md5 的区别就是外部访问时传输的密码是否用 md5 加密;
ident:对外部访问,从 ident 服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录;对于本地连接实际上使用peer;
peer:通过客户端操作系统内核来获取当前系统登录的用户名,并作为psql用户名进行登录。
3. 配置后需重新启动PostgreSQL服务生效
sudo systemctl restart postgresql-12 # 重启PostgreSQL服务(在centos用户下即可)
sudo su postgres
psql -U postgres -d postgres -h 10.100.24.7 -p 1988 # 在postgres用户下验证可否连接
三、简单使用
1. SQL控制台操作语句,建用户,建数据库
create database mbdwlog; # 数据库默认的owner是postgres
drop database mbdwlog; # 删除数据库
create user pythonuser with password 'abcd1234'; # 建用户
create database mbdwlog owner pythonuser; # 建用户的数据库
grant all privileges on database mbdwlog to pythonuser; # 数据库权限赋予数据库用户
2. 常用命令
\l #查看所有数据库
\c mydb #切换当前数据库
\d #列出当前数据库下所有表
\du # 列出所有用户
\dn # 查看表架构
\conninfo # 列出当前数据库和连接信息
\o /tmp/test.txt # 查询结果写入文件
select * from test;
\o # 再一次\o关闭写入,否则是连续写入
\w # 列状显示
四、卸载PostgreSQL
1. 源码方式:make uninstall
2. rpm方式:rpm -e
3. yum方式:yum remove postgresql*
参考:
https://ken.io/note/centos7-postgresql12-install-and-configuration
https://blog.csdn.net/wc1695040842/article/details/106780666
https://blog.csdn.net/zhy810302/article/details/111401470