1、更新系统软件包
dnf update
2、安装PostgreSQL
dnf install postgresql-server
3、初始化数据库
postgresql-setup --initdb #本质上是 initdb 的包装脚本
数据默认保存在文件夹/var/lib/pgsql/data
日志默认保存在文件/var/lib/pgsql/initdb_postgresql.log
4、启动postgresql服务
systemctl start postgresql
#systemctl stop postgresql
#systemctl enable postgresql
#systemctl disable postgresql
#systemctl restart postgresql
5、连接postgresql
sudo -u postgres psql #进入postgresql,postgres为超级用户名
/*psql -U 用户名 -h 主机 -p 端口 -d 数据库 #进入postgresql
#在linux系统中,当linux当前用户与postgresql用户不一致时,会出现对等认证失败,
解决办法:一用上面方法;二改为密码认证(详见基本配置)*/
alter user postgres with password '密码'; #进入后可以修改密码
\q #退出postgresql
6、开放端口
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload
7、查看版本:postgres -V或postgres --version
8、基本配置
postgresql配置文件主要有两个,一般位于/var/lib/pgsql/data:
①postgresql.conf:核心配置文件,用于设置数据库服务的全局参数(如监听地址、端口号、最大连接数、日志配置等)
②pg_hba.conf:认证配置文件,用于控制客户端的访问权限和认证方式
(1)改变数据和日志保存位置
▲ 在初始化时指定数据目录和日志目录:
mkdir /data/pgsql
chown -R postgres /data/pgsql
sudo -u postgres initdb -D /data/pgsql/data #初始化数据目录
修改/usr/lib/systemd/system/postgresql.service如下:
Environment=PGDATA=/data/pgsql/data
systemctl daemon-reload
改变日志目录,修改配置文件postgresql.conf如下:
log_directory='/data/pgsql'
▲ 迁移数据目录和日志目录:
systemctl stop postgresql
rsync -av /var/lib/pgsql /data/pgsql
修改/usr/lib/systemd/system/postgresql.service如下:
Environment=PGDATA=/data/pgsql/data
systemctl daemon-reload
修改配置文件postgresql.conf如下:
data_directory='/data/pgsql/data'
log_directory='/data/pgsql'
(2)配置远程访问
①编辑postgresql.conf文件:
listen_address='*' #允许所有ip访问
②编辑pg_hba.conf文件:
host all all 0.0.0.0/0 md5 #允许所有ip通过密码访问,第一个all为所有数据库,第二个all为所有用户
(3)配置密码认证
编辑pg_hba.conf文件:
local all postgres md5 #主要是把peer改为md5,md5也可以为scram-sha-256
9、常用操作
\l #列出所有数据库
\c #数据库:切换当前数据库
\q #退出postgresql
show data_directory; #显示当前数据目录
show log_directory; #显示当前日志目录
create database abc; #创建数据库
drop database abc; #删除数据库
支持select 、insert into、delete、update等
不支持:show databases;、use 数据库
(1)备份与恢复单个数据库
pg_dump -U 用户名 -d 数据库 -f 备份文件 #备份
psql -U 用户名 -d 数据库 -f 备份文件 #恢复
(2)备份与恢复所有数据库
pg_dump -U 用户名 -f 备份文件 #备份
psql -U 用户名 -f 备份文件 #恢复
postgresql官方网站:https://www.postgresql.org/
下一篇:没有了