""psql"" 和 ""postgres"" 命令有什么区别?

ova*_*g25 4 postgresql

我正在运行山狮,当我运行psqlorpostgres命令时,我得到了非常不同的响应。

对于前者,我得到:

> psql
ovatsug25=#
Run Code Online (Sandbox Code Playgroud)

对于后者,我得到:

> postgres
postgres does not know where to find the server configuration file.
Run Code Online (Sandbox Code Playgroud)

您必须指定--config-file-D调用选项或设置PGDATA环境变量。

我通过自制软件安装了 postgres 并运行

rm /usr/bin/psql
Run Code Online (Sandbox Code Playgroud)

这样做之后。

我的主要问题已修复(Rails 启动并连接到数据库),但我不确定这些命令之间的区别在哪里或如何发生。在此期间仍在试图弄清楚面包......我很感激任何帮助。

他们的位置

which psql
/usr/local/bin/psql
Run Code Online (Sandbox Code Playgroud)

和哪个postgres

which postgres
/usr/local/bin/postgres
Run Code Online (Sandbox Code Playgroud)

Der*_*rfK 9

postgres是服务器本身,与所有客户端连接分开运行。它几乎从不手动运行。即使你想启动和停止它,pg_ctl如果你从你的发行版安装了 postgres 包,这通常是通过init 脚本完成的。我不确定 Postgresql 的 OSX 版本是否有任何特殊的方式来启动服务器,但它需要在任何客户端可以连接到它之前启动。

psql是命令行客户端,它连接到服务器并允许您手动执行单个查询。不知道为什么你认为你需要rm它,但没有它只是很烦人,因为没有它你必须编写自己的程序来执行诸如“CREATE TABLE”或“CREATE USER”之类的命令。