Docker安装PostgreSQL并配置SSL访问
编辑
29
2024-12-10
PostgreSQL 主表采用堆表存放,MySQL 采用索引组织表,能够支持比 MySQL 更大的数据量。 PostgreSQL 的主备复制属于物理复制,相对于 MySQL 基于 binlog 的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。
安装步骤
Docker 安装 Postgres
docker run -d \
--name postgres \
-p 5432:5432 \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=password \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-e TZ=Asia/Shanghai \
-v /path/postgre:/var/lib/postgresql/data \
--restart unless-stopped \
postgres:17
Postgres 设置 SSL 访问
#进入Postgres容器
docker exec -it postgres bash
#生成证书
openssl req -new -text -passout pass:abcd -subj /CN=localhost -out server.req -keyout privkey.pem
openssl rsa -in privkey.pem -passin pass:abcd -out server.key
openssl req -x509 -in server.req -text -key server.key -out server.crt
chmod 600 server.key
# 在 /var/lib/postgresql/data/postgresql.auto.conf 内增加以下内容:
# - SSL -
ssl = on
ssl_cert_file = '/var/lib/postgresql/data/server.crt'
ssl_key_file = '/var/lib/postgresql/data/server.key'
# 重启Docker Postgres
创建数据库及用户:
# 进入Postgres容器
docker exec -it postgres bash
# 进入Postgres
psql -h localhost -p 5432 -U USERNAME
# 创建数据库及用户
CREATE DATABASE dbname;
CREATE USER dbuser WITH PASSWORD 'password';
# 进入数据库并授权
\c dbname;
GRANT ALL ON SCHEMA public TO dbuser;
- 0
- 0
-
分享