PGSQL 安装配置指南

时间:2022-10-24 17:57:37

1.前期准备

1.1.系统更新

参考标准操作完成系统更新设置。​​https://blog.51cto.com/waringid/5782872​

1.2.安装 Pgsql 

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql10
yum install postgresql10-server
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl enable postgresql-10
systemctl start postgresql-10

2.初始配置

安装完成后,查看 PostgreSQL 版本

psql --version

完成安装默认会

  1. 创建名为“postgres”的 linux 用户
  2. 创建名为“postgres”不带密码的默认数据库账号作为数据库管理员
  3. 创建名为“postgres”的表
cat /etc/group

2.1.默认信息

config    /var/lib/pgsql/10/data

data      /var/lib/pgsql/10/data

locale   en_US.UTF-8

socket   /var/run/postgresql

port      5432

2.2.psql 指令

sudo -u postgres psql
\password:设置密码
\q:退出
\h:查看 SQL 指令解释,例如 \h select
\?:查看 SQL 命令列表
\l:列出所有的数据库
\c [database_name]:连接具体的数据库
\du:列出所有用户
\e:打开文本编辑
\conninfo:列出当前和数据库连接的信息

3.常用操作

3.1.登录

psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

如果数据库用户和系统用户同名则可以省略用户名,如果数据库和系统用户同名也可省略。

 3.2.修改管理员密码

sudo -u postgres psql


sudo -u postgres psql -d postgres  ##删除管理员密码


alter user postgres with password 'password';

3.3.允许远程访问

1、修改监听地址

vim /var/lib/pgsql/10/data/postgresql.conf

将#listen_addresses = 'localhost' 的注释去掉改为 listen_addresses = '*' 或具体需要监听的地址

2、修改所允许用户的IP段

vim /var/lib/pgsql/10/data/pg_hba.conf

在文件末尾添加:host    all    all  192.168.0.13/32    trust  或者 host all all 0.0.0.0 0.0.0.0  md5

PGSQL 安装配置指南

3、重启数据库服务

3.4.添加用户和数据库

1、使用 psql 指令

sudo -u postgres psql


create user konguser with password 'password';
create database kongdatabse owner konguser;
grant all privileges on database kongdatabse to konguser;

2、使用 shell 方式

sudo -u postgres createuser --superuser konguser1;
sudo -u postgres psql
\password konguser1;
\q
sudo -u postgres createdb -O konguser1 kongdatabase1;

3、删除用户

\du
\l
drop database kongdatabse;
drop user konguser;

3.5基本数据库指令

--创建新表 
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
--插入数据
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
--选择记录
SELECT * FROM user_tbl;
--更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
--删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
--添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
--更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
--更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
--删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
--表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
--删除表格
DROP TABLE IF EXISTS backup_tbl;

4.kong 网关操作

后面安排单独的配置文章介绍Kong 微服务网关。一款非常好用的微服务网关工具。

4.1.连接 kong 数据库

sudo -u postgres psql -U kong -d kong -h 127.0.0.1 -p 5432

PGSQL 安装配置指南

4.2.查看所有表

\dt

PGSQL 安装配置指南

4.3.查看 services 表

select * from services;

PGSQL 安装配置指南

PGSQL 安装配置指南

4.4.查看 route 表

select * from routes;

PGSQL 安装配置指南

PGSQL 安装配置指南

4.5.查看 keyauth 表

select * from keyauth_credentials;

4.6.查看 api 表

select * from apis;

4.7.查看 plugins 表

select * from plugins;

PGSQL 安装配置指南

PGSQL 安装配置指南

PGSQL 安装配置指南

4.8.查看 consumers 表

select * from consumers;

PGSQL 安装配置指南

5.自定义安装

5.1.设置目录权限

mkdir -p /data/pgsql/data
mkdir -p /data/pgsql/log
chown -R postgres.postgres /data/pgsql /usr/pgsql-11/

5.2.初始化数据库

后续的设置使用前面新建的postgres用户操作。

设置用户环境变量

su - postgres
vi ~/.bash_profile
# 增加如下内容
export PG_HOME=/usr/pgsql-11
export PGDATA=/data/pgsql/data
export PATH=${PG_HOME}/bin:$PATH
export PGPORT=5432
export PGUSER=postgres
export PGDATABASE=postgres

使用默认地址${PGDATA}初始化

source ~/.bash_profile
${PG_HOME}/bin/initdb -D ${PGDATA} -E utf8
vi ${PGDATA}/postgresql.conf

listen_addresses = '*'
port = 5432

5.3.设置数据库白名单

vi ${PGDATA}/pg_hba.conf

# 增加如下一条记录,允许用户密码模式(这是一个非常宽松的限制,生产环境慎用)
host all all 0.0.0.0/0 md5

5.4.启动停止命令

这里的启停命令都是用postgres用户执行的。

#### 启动
${PG_HOME}/bin/pg_ctl start

#### 停止
${PG_HOME}/bin/pg_ctl stop

#### 重新载入配置文件(不需要重启)
${PG_HOME}/bin/pg_ctl reload

5.5.访问数据库

命令行连接
# 使用postgres用户作为超级用户登录

psql -U postgres -d postgres
##建立管理员账号进行日程操作,避免使用内置超级用户
create user admin superuser password 'xxx';
-- 新建一个测试用用户
create user demo with password 'demo';
-- 新建一个测试用DB并分配给指定用户
create database demo with encoding='utf8' owner=demo;
-- 修改用户密码
alter user demo password 'xxx';

5.6.启动服务

因为在初始化数据库的时候我们使用了自定义数据目录,所以在注册服务前我们需要修改默认的地址

### 修改服务中的地址

vi /usr/lib/systemd/system/postgresql-11.service

# 修改Envirnotallow=PGDATA=/var/lib/pgsql/11/data/为
Environment=PGDATA=/data/pgsql/data/

### 注册服务并启动
systemctl daemon-reload
systemctl enable postgresql-11
systemctl start postgresql-11
systemctl stop postgresql-11
systemctl disable postgresql-11

5.7.卸载

yum remove -y postgresql11 postgresql11-server
rm -rf /usr/pgsql-11/ /var/lib/pgsql/ /data/pgsql/
userdel -r postgres
systemctl stop postgresql-11
mv /var/lib/pgsql/11/* /data/pgsql/