关于macos:在lion上破碎的brew安装的postgresql

Broken brew-installed postgresql on lion

我知道有很多关于堆栈溢出的lion-postgresql相关问题,但似乎没有解决我的问题。

我安装了postgresql的自制软件,之后一切都很好。然后我用/ usr / lib中的libpq.dylib链接搞砸了一下,以便应用程序链接到brew安装版本而不是操作系统安装版本。不知何故,我设法破坏我的安装,同时这样做任何调用psql都会出现以下错误:

1
2
>psql
psql: invalid connection OPTION"client_encoding"

用'brew remove postgresql'和另一个'brew install postgresql'重新安装postgresql似乎没有帮助(同样的错误)。我还将/usr/lib/libpq.dylib重新链接为/usr/lib/libpq.5.dylib,这是我以前认为的。

另外,一个可能相关的问题是我的postgres服务器似乎不想关闭:

1
2
>pg_ctl -D /usr/LOCAL/var/postgres stop -s -m fast    
pg_ctl: server does NOT shut down

任何人都有任何关于错误的线索?或者,我将如何完全卸载并重新安装postgres服务器和客户端?


如果您已经brew doctor'并且已经拥有最新版本的postgres,请运行

brew unlink postgresql && brew link postgresql

然后

brew link --overwrite postgresql


如果您通过自制程序安装了postgresql:

1
2
brew UPDATE
brew doctor

Unexpected dylibs:
/usr/local/lib/libpq.5.dylib

Unexpected .la files:
/usr/local/lib/psqlodbcw.la

1
brew upgrade postgresql

Error: The brew link step did not complete successfully

1
brew link --overwrite postgresql

那么你应该可以运行psql命令。


修复对我有用:

  • 如果你使用pgAdmin:

    1
    SHOW server_encoding;

    -bash-4.1 $ export PGCLIENTENCODING ='UTF8'
    -bash-4.1 $ psql

psql(9.3.3)
输入"帮助"以获取帮助。

postgres =# l
...

把var放在.profile或.bashrc中


试试/usr/local/bin/psql。 如果这不起作用,请查看which psql

Lion附带了postgresql运行的安装,你可能正在使用stock psql而不是brew psql

或者那个可能正在运行,并使用brew psql连接到Lion postgres实例。

验证/usr/local/bin是否在$PATH中的/usr/bin之前。 检查echo $PATH