使用 Docker 安装 PostgreSQL 并配置 SSL
编辑
38
2024-12-10
PostgreSQL 和 MySQL 的对比分析
PostgreSQL 的主表存储采用堆表形式,而 MySQL 则是索引组织表。相比之下,PostgreSQL 能够支持更大的数据量,适合高性能场景。
在复制方式上,PostgreSQL 采用物理复制,相较于 MySQL 基于 binlog 的逻辑复制,其数据一致性更加可靠,复制性能更高,同时对主机性能的影响更小。
安装 PostgreSQL 的步骤
1. 使用 Docker 安装 PostgreSQL
以下是使用 Docker 快速安装和配置 PostgreSQL 的命令:
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_USER
和POSTGRES_PASSWORD
:设置默认管理员用户名和密码。 -
PGDATA
:指定数据文件存储路径。 -
TZ
:设置时区,确保日志和时间一致。 -
-v
:将容器数据持久化到宿主机路径。 -
--restart unless-stopped
:容器崩溃后会自动重启。
2. 设置 SSL 支持
配置 SSL 加密访问,解决部分应用提示连接失败的问题。
(1)进入 PostgreSQL 容器:
docker exec -it postgres bash
(2)生成 SSL 证书和私钥:
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
(3)配置 PostgreSQL 使用 SSL:
编辑 /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'
(4)退出 PostgreSQL 容器并重启。
3. 创建数据库和用户
完成基本配置后,可以通过以下命令创建数据库和用户。
(1)进入容器:
docker exec -it postgres bash
(2)登录 PostgreSQL:
psql -h localhost -p 5432 -U postgres
(3)执行以下 SQL 命令:
-- 创建数据库
CREATE DATABASE dbname;
-- 创建用户并设置密码
CREATE USER dbuser WITH PASSWORD 'password';
-- 授权用户访问数据库
\c dbname
GRANT ALL ON SCHEMA public TO dbuser;
总结
通过上述步骤,您可以快速使用 Docker 部署一个支持 SSL 的 PostgreSQL 服务。
- 0
- 0
-
分享