“postgres:找不到命令”/在定期安装 postgres 并配置新的数据目录后

“postgres:找不到命令”/在定期安装 postgres 并配置新的数据目录后

我正在 UBUNTU 16.04 服务器上设置 POSTGRESQL:

我按照给出的解释这里,我做了:安装:

sudo apt-get install postgresql postgresql-contrib`

postgres用户及密码的设置:

sudo -u postgres psql postgres
\password [postgres password]

此时命令postgres起作用了。

在创建任何 SCHEMA 之前,我跟进了一些指导方针在 下为 POSTGRES 设置一个新的数据目录/srv/datadisk01/database,datadisk01 是用于存储和使用数据库的硬盘。

我将 的所有者更改/srv/datadisk01/databasepostgres用户chmod

我启动了:/usr/lib/postgresql/9.5/bin/initdb -D /srv/datadisk01/database,它起作用了。

然后我运行sudo service postgresql stop。我更新了文件/etc/postgresql/9.5/main/postgresql.conf,更改了

data_directory = ‘/var/lib/postgresql/9.5/main’

data_directory = ‘/srv/datadisk01/database’

sudo service postgresql start

我停在那里并切换到与 POSTGRES 无关的其他主题设置。

稍后(重新启动机器),命令postgres失败并返回:

postgres: command not found

我可以看看如何重新配置​​环境变量以使其工作,我会的,但我想知道在执行自定义数据目录后命令可用性从环境变量中消失是否有原因?

答案1

postgres 执行命令是psql和不是postgres

postgres 是用户名

信息来自入门指南

要使用 psql 测试您的连接,请运行以下命令:

psql -U postgres -W

答案2

您可以使用此命令初始化、启动和重新启动数据库服务器

  • sudo 服务 postgresql initdb
  • sudo 服务 postgresql 启动
  • sudo 服务 postgresql 重启

答案3

这是我针对 GitHub Actions 解决该问题的方法,在我的项目中

sudo apt-get update
sudo apt-get install -y postgresql-14
sudo ln -s /usr/lib/postgresql/14/bin/initdb /bin/initdb
sudo ln -s /usr/lib/postgresql/14/bin/postgres /bin/postgres

由于某种原因,安装后initdb无法postgres使用。$PATH

答案4

如果有人想启动服务器,这是命令 sudo -u postgres /etc/init.d/postgresql start

相关内容