PostgreSQL 安装配置

以下简称 PgSQL

PGSql原生支持 NoSQL 的特性, 不过却是关系型数据库; 其JSON的性能不输给 MongoDB, 算是现在值得在生产环境之中投入使用的数据库.

安装配置

这里可以参考官方文档配置: 官方文档

直接选择对应系统配置源:

这里直接配置 Debian11 的源( postgresql-12 ):

1
2
3
4
5
# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

此时源配置已经完成, 就可以准备安装服务:

1
2
3
4
5
6
# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
sudo apt-get -y install postgresql postgresql-client

服务会自动配置到系统之中, 直接采用系统去调取服务:

1
2
3
4
sudo systemctl status postgresql.service # 查看系统管理状态
sudo systemctl start postgresql.service # 启用 PgSql 服务
sudo netstat -tulpn|grep -E 'postgresql|5432' # 查看系统是否启用了 postgresql 的 5432 端口服务
sudo systemctl enable postgresql.service # 设置开机自动启用 PgSql 服务

注意默认监听端口为 5432

账号配置

这里一般配置文件设置, 配置文件放置于 /etc/postgresql/14/main/postgresql.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13

# 文件默认的存放数据数据目录
data_directory = '/var/lib/postgresql/14/main' # use data in another directory

# host访问限制配置文件, 用于开放对面访问的 host 配置
hba_file = '/etc/postgresql/14/main/pg_hba.conf' # host-based authentication file

# 开放公网/局域网/本地地址
# 'localhost' 为默认的配置, 用于本地访问; '*' 则为对外全开放, 直接局域网 '192.168.1.x' 之类
listen_addresses = '*' # what IP address(es) to listen on;

# 默认访问的端口号
port = 5432 # (change requires restart)

这里基本上只需要最基础的这三个配置, 首先是创建对外账号处理( 修改配置之后重启服务 ):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 这里必须要切换到 `postgres` 这个超级用户才能进行客户端管理:
# sudo -i -u postgres
# 之后切换到进入命令行
# psql
# 后续输入以下指令创建账号

# 创建个 `manager` 的账号, 密码为 `qwerty123456`
CREATE ROLE manager WITH
LOGIN
SUPERUSER
CREATEDB
CREATEROLE
INHERIT
NOREPLICATION
CONNECTION LIMIT -1
PASSWORD 'qwerty123456';
COMMENT ON ROLE manager IS '自定义对外数据库管理账号';

# 如果不满意的话可以删除账号
DROP ROLE manager;

之后测试下登录:

1
2
3
# 输入以下指令之后确认密码查看是否允许登录
# postgres 为系统默认数据库, 确认登录没问题就代表账号创建完成
psql --host=127.0.0.1 --username=manager --dbname=postgres

这里需要手动写入 Host 表来开放访问( Host 文件: /etc/postgresql/14/main/pg_hba.conf ):

1
2
3
4
# 访问HOST	访问数据库	访问用户	  	  访问地址	  			  加密方式		
# TYPE DATABASE USER ADDRESS METHOD
# 这里不需修改其他, 追加创建的用户即可, 加密方式最低采用md5
host all manager 0.0.0.0/0 md5

配置好之后重启服务即可, 这样就能直接访问了.