"postgres: command not found" / 在定期安装 postgres 并配置新的数据目录后

nyl*_*uje 8 server permissions command-line postgresql

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

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

sudo apt-get install postgresql postgresql-contrib`
Run Code Online (Sandbox Code Playgroud)

postgres 用户名和密码的设置:

sudo -u postgres psql postgres
\password [postgres password]
Run Code Online (Sandbox Code Playgroud)

那时命令postgres起作用了。

然后在创建任何 SCHEMA 之前,我遵循了一些指导方针,为 POSTGRES 下的 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’
Run Code Online (Sandbox Code Playgroud)

data_directory = ‘/srv/datadisk01/database’
Run Code Online (Sandbox Code Playgroud)

并且sudo service postgresql start

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

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

postgres: command not found
Run Code Online (Sandbox Code Playgroud)

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

Yar*_*ron 17

postgres 执行命令是psql和不是postgres

postgres 是用户名

来自pgGettingStarted 的信息

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

psql -U postgres -W
Run Code Online (Sandbox Code Playgroud)