#PostgreSQL搭建记录
单点模式
yum安装
先去Pgsql官网找需要安装的版本、这次需要安装的是14.1,把对应的rpm拉下来。点此进入PgSQL官网
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
1.安装PgSQL
yum install -y postgresql14-server
2.初始化
/usr/pgsql-14/bin/postgresql-14-setup initdb
3.设置成开机启动
systemctl enable postgresql-14
4.启动服务
sudo systemctl start postgresql-14
5.设置数据库密码
- 数据库安装后,默认创建账号postgres
- 使用postgres账号身份操作
su - postgres
- 使用postgres账号登录数据库
psql -U postgres
- 设置密码
alter user postgres with password '90-iopjklnm,'
- 退出
\q #退出数据库
exit #退出postgres账号
6.开启远程访问
- 对所有IP开放访问
- 打开postgresql.conf文件
vim /var/lib/pgsql/14/data/postgresql.conf
- 修改listen_address配置(对所有IP开发访问)
listen_address = '*' #自定义,可多条
- 增加信任连接
- 打开pg_hba.conf文件
vim /var/lib/pgsql/14/data/pg_hba.conf
- 增加信任连接配置
# IPv4 local connections:
host all all 0.0.0.0/0 trust
- 重启服务
systemctl restart postgresql-14
7.添加防火墙端口号 ( 如果关闭了Firewall可忽略,若用的是iptables,请使用对应的方式)
- 添加端口号
firewall-cmd --zone=public --add-port=5432/tcp --permanent
- 重载防火墙立即生效
firewall-cmd --reload
创建数据库
1.使用 CREATE DATABASE SQL 语句来创建
CREATE DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下:
CREATE DATABASE dbname;
2.使用 createdb 命令来创建。
createdb 是一个 SQL 命令 CREATE DATABASE 的封装。createdb 命令语法格式如下:
createdb [option...] [dbname [description]]
参数说明:
dbname:要创建的数据库名。
description:关于新创建的数据库相关的说明。
options:参数可选项,可以是以下值:
序号 | 选项 & 描述 |
---|---|
1 | -D tablespace指定数据库默认表空间。 |
2 | -e 将 createdb 生成的命令发送到服务端。 |
3 | -E encoding指定数据库的编码。 |
4 | -l locale指定数据库的语言环境。 |
5 | -T template指定创建此数据库的模板。 |
6 | –help显示 createdb 命令的帮助信息。 |
7 | -h host指定服务器的主机名。 |
8 | -p port指定服务器监听的端口,或者 socket 文件。 |
9 | -U username连接数据库的用户名。 |
10 | -w忽略输入密码。 |
11 | -W连接时强制要求输入密码。 |
接下来我们打开一个命令窗口,进入到 PostgreSQL 的安装目录,并进入到 bin 目录,createdb 命令位于 PostgreSQL安装目录/bin 下,执行创建数据库的命令:
$ cd /Library/PostgreSQL/11/bin/
$ createdb -h localhost -p 5432 -U postgres runoobdb
password ******
3.使用 pgAdmin 工具。
简单来说就是登录数据工具…
数据库用户添加和授权
1.登录数据库
su - postgres
psql -U postgres
2.创建一个 gpadmin
用户,并设置密码gpadmin
;
CREATE USER gpadmin WITH PASSWORD 'gpadmin';
3.把名为lh_db的数据库权限都给这个新创建的用户gpadmin
grant all privileges on database lh_db to gpadmin;
grant all privileges on all tables in schema public to gpadmin;
如果需要修改登录权限,和之前一样需要到文件里边去改
备份
单库备份
# postgres 用户名
# lh_db 数据库名
# lh_db.bak备份文件(可带地址,不带为当前目录),bak文件格式
pg_dump -h 127.0.0.1 -U postgres lh_db > lh_db.bak
恢复
单库恢复
psql -h 127.0.0.1 -U postgres -d lh_db < /opt/dbbak/lh_db.bak
备份时遇到版本问题
解决方法:
- 检查pg_dump的已安装版本:
find / -name pg_dump -type f 2>/dev/null
我的输出是:
/usr/pgsql-9.5/bin/pg_dump
/usr/bin/pg_dump
安装了两个版本。 要使用更新版本更新pg_dump:
ln -s /usr/pgsql-9.5/bin/pg_dump /usr/bin/pg_dump --force
f 2>/dev/null
我的输出是:
/usr/pgsql-9.5/bin/pg_dump
/usr/bin/pg_dump
安装了两个版本。 要使用更新版本更新pg_dump:
ln -s /usr/pgsql-9.5/bin/pg_dump /usr/bin/pg_dump --force
[外链图片转存中…(img-f6BzEmBb-1686284283381)]