为 Postgres 创建符号链接

为 Postgres 创建符号链接

作为一名开发人员,我经常直接 ssh 进入我的本地数据库,只是为了在推送我的代码之前测试我的应用程序。

然而,我发现每次我想访问 Postgres 时,我都必须输入

postgres@ubuntu:~$ /usr/local/pgsql/bin/psql test

而在我的工作机器上,我所要做的就是输入

postgres@ubuntu:~$ psql --dbname=test --username=user

我尝试创建一个符号链接,并且成功了,但是每当我尝试通过此快捷方式连接它时,都会收到以下错误消息:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

我该如何让它工作?为了避免产生任何差异,我使用的是 9.1.x 系列的自编译版本。

编辑:我现在知道这实际上不是符号链接,但我不确定它叫什么,否则我肯定已经在 Google 上找到了。基本上,我希望它通过输入psql [OPTIONS]类似rvm [OPTIONS]或 来从 shell 运行ruby [OPTIONS]

我知道有一个名为postgresql-client-common& 的包,还有一堆其他的 Postgres 包apt-get,但我不想使用该apt-get版本,这样我就可以动态更新 Postgres。

答案1

如果只是直接调用 psql,则需要确保登录时路径“/usr/local/pgsql/bin”包含在 $PATH 中。通常这与在 /etc/profile(或 ~/.profile)中适当设置 PATH 变量有关,或者如果您使用 bash,那么这将是 /etc/bashrc 或 ~/.bashrc。

例如

导出 PATH="$PATH:/usr/local/psql/bin"

此外,psql 命令需要以下参数;psql <dbname> <username>(您可以使用 --flags 来指定相同的参数)。

如果您提供“psql test”,那么它将假定当前用户的用户名(如whoami命令所示)。

希望这可以帮助。

答案2

为什么不使用 Linux 别名?

alias psql=/usr/local/pgsql/bin/psql

要创建永久别名,只需将此行放入

~/.bashrc or ~/.bash_profile

答案3

功能的便捷性怎么样?

postgres@ubuntu:~$ function psqltest {
> /usr/local/pgsql/bin/psql test
> }
postgres@ubuntu:~$ 

一旦定义,每当您输入以下内容时,它将在您的 bash shell 中运行 /usr/local/pgsql/bin/psql test

postgres@ubuntu:~$ psqltest

最后一条提示:将您想要保留并再次使用的功能存储在 $HOME/.bashrc 文件中。

如果你对编写 bash 函数感兴趣,我找到了一个教程https://ryanstutorials.net/bash-scripting-tutorial/bash-functions.php

相关内容