我正在尝试更改 Postgres 用于查找其配置文件的数据目录。
我更新了 Ubuntu 22 和新安装的 Postgresql@15。
为了保持对我的 Postgres 配置文件的版本控制,我已经将默认配置复制到我的服务器配置存储库中的新数据目录,
/usr/local/apps/server-configs/configs/postgres/postgres_data/
.
Postgresql 将其服务文件安装到这些路径:(/lib,而不是 /etc):
/lib/systemd/system/postgresql.service
/lib/systemd/system/[email protected]
通过
sudo systemctl edit postgresql
和sudo systemctl edit [email protected]
,我在两个位置都添加了以下服务环境变量分配:
[Service]
Environment=
Environment=PGDATA=/usr/local/apps/server-configs/configs/postgres/postgres_data/
(双重
Environment
声明可能不正确。在解决这个问题时,我在某处读到必须将它们设置为清除之前的任何内容。)
这又创建了 2 个覆盖文件:
postgresql.service.d/override.conf
[email protected]/override.conf
然后我做了一个守护进程重新加载并重新启动了 Postgres,只是为了好玩。
sudo systemctl daemon-reload
sudo systemctl restart postgresql
最后检查新的数据目录是否被 Postgres 拾取,我连接到数据库并通过这种方法检查:
sudo -iu postgres
psql
postgres@logs:~$ psql
psql (15.2 (Ubuntu 15.2-1.pgdg22.04+1))
Type "help" for help.
postgres=# SHOW config_file;
config_file
-----------------------------------------
/etc/postgresql/15/main/postgresql.conf
(1 row)
我一直在阅读很多演练,这些演练或多或少将其描述为解决此问题的正确方法。但无论我一直在尝试什么,配置文件仍然指向已安装的版本,而不是我
server-configs
存储库中的版本。
我错过了什么?谢谢!