![“postgres:找不到命令”/在定期安装 postgres 并配置新的数据目录后](https://linux22.com/image/1146763/%E2%80%9Cpostgres%EF%BC%9A%E6%89%BE%E4%B8%8D%E5%88%B0%E5%91%BD%E4%BB%A4%E2%80%9D%2F%E5%9C%A8%E5%AE%9A%E6%9C%9F%E5%AE%89%E8%A3%85%20postgres%20%E5%B9%B6%E9%85%8D%E7%BD%AE%E6%96%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E7%9B%AE%E5%BD%95%E5%90%8E.png)
我正在 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/database
为postgres
用户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
答案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