“psql”和“postgres”命令之间有什么区别?

“psql”和“postgres”命令之间有什么区别?

psql我正在运行 Mountain Lion,当我运行或命令时,我得到了非常不同的响应postgres

对于前者,我得到:

> psql
ovatsug25=#

对于后者我得到:

> postgres
postgres does not know where to find the server configuration file.

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

我通过 homebrew 安装了 postgres 并运行

rm /usr/bin/psql

这样做之后。

我的主要问题已解决(Rails 启动并连接到数据库),但我不确定这些命令之间的区别在哪里,也不知道这是怎么发生的。与此同时,我仍在努力弄清楚……如果能得到任何帮助,我将不胜感激。

他们的位置

which psql
/usr/local/bin/psql

哪个 postgres

which postgres
/usr/local/bin/postgres

答案1

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

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

相关内容