PostgreSQL 的主表存储采用堆表形式,而 MySQL 则是索引组织表。相比之下,PostgreSQL 能够支持更大的数据量,适合高性能场景。
   
   在复制方式上,PostgreSQL 采用物理复制,相较于 MySQL 基于 binlog 的逻辑复制,其数据一致性更加可靠,复制性能更高,同时对主机性能的影响更小。
以下是使用 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:容器崩溃后会自动重启。
配置 SSL 加密访问,解决部分应用提示连接失败的问题。
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'
  (4)退出 PostgreSQL 容器并重启。
完成基本配置后,可以通过以下命令创建数据库和用户。
docker exec -it postgres bash
  psql -h localhost -p 5432 -U postgres
  -- 创建数据库
CREATE DATABASE dbname;
-- 创建用户并设置密码
CREATE USER dbuser WITH PASSWORD 'password';
-- 授权用户访问数据库
\c dbname
GRANT ALL ON SCHEMA public TO dbuser;
  通过上述步骤,您可以快速使用 Docker 部署一个支持 SSL 的 PostgreSQL 服务。