无法成功更改 Postgresql data_directory 并重新启动 Postgres

无法成功更改 Postgresql data_directory 并重新启动 Postgres

我的目标是将 postgresql 数据库数据存储在外部 SSD 硬盘上,该硬盘已插入运行 Linux Ubuntu 20.04 LTS ARM x64 的计算机。我在更改 postgresql.conf 文件中的数据目录然后重新启动 postgres 时遇到问题。

psql: could not connect to server: No such file or directory

Is the server running locally and accepting connections on 
Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我知道当 postgres 配置出现问题时会出现此错误。我尝试在 /mnt/data/postgresql/12/main 目录上设置用户 postgres 的权限和所有权。没有运气。

以下是我采取的步骤:

创建挂载目录

sudo mkdir /mnt/data

将驱动器挂载到目录

sudo mount -o defaults /dev/sda1 /mnt/data

将目录添加到要存储 postgres 数据的已安装驱动器

sudo mkdir -p /mnt/data/postgresql/12/main

将数据目录更改为/mnt/data/postgresql/12/main

sudo nano /etc/postgresql/12/main/postgresql.conf

重启postgresql服务

sudo systemctl restart postgresql.service

答案1

你应该使用初始化数据库以用户身份创建一个新的数据目录postgres,例如

sudo mkdir -p /mnt/data/postgresql/12/main
sudo chown -R postgres:postgres /mnt/data/postgresql
sudo -u postgres /usr/lib/postgresql/12/bin/initdb -D /mnt/data/postgresql/12/main
sudo service postgresql stop

这还会创建(未使用的)配置文件postgresql.confpg_hba.confpg_ident.conf/mnt/data/postgresql/12/main.

现在将路径更改为data_directoryin /etc/postgresql/12/main/postgresql.conf,启动服务并测试是否data_directory按预期设置:

sudo service postgresql start
sudo -u postgres psql -c 'show data_directory;'

这应该输出:

        data_directory        
------------------------------
 /mnt/data/postgresql/12/main
(1 row)

相关内容