2

我正在尝试将 Postgresql 与 Heroku 一起使用。我使用从http://www.enterprisedb.com/products-services-training/pgdownload下载的安装程序安装了 Postgres 9.1.4 。然后在我/etc/profile的位置添加psql到我的PATH. 当我尝试将psqlshell 与 Heroku 一起使用时,我遇到了分段错误,但是当我尝试在本地使用它时,它似乎工作正常:

[Sun Aug 05 20:17:47] : which psql
/Library/PostgreSQL/9.1/bin/psql
[Sun Aug 05 20:22:15] : heroku pg:psql
psql (9.1.4)
Segmentation fault
[Sun Aug 05 20:22:21] : psql -U postgres
Password for user postgres: 
psql (9.1.4)
Type "help" for help.

postgres=# \q
[Sun Aug 05 20:22:29] : heroku version
heroku-toolbelt/2.30.2 (universal-darwin10.0) ruby/1.8.7

我确实注意到了,heroku versionruby/1.8.7我正在使用rvm use 1.9.3. 这个 Ruby 不匹配会是问题吗?如果是这样,我该如何解决?我不确定下一步该怎么做,因为分段错误错误消息非常模糊。这一切都在 Mac OS X 10.6.8 上。

4

4 回答 4

1

我联系了 Heroku 支持,他们建议通过 Homebrew (http://mxcl.github.com/homebrew/) 安装 Postgres。我这样做了,现在我可以访问我的 Heroku 数据库了。

于 2012-08-14T17:29:45.433 回答
1

我也有这个问题:psql在本地工作,但heroku pg:psql. 我发现降级到 Postgres 9.1.3(安装程序仍然可用)解决了它。

看起来该heroku pg:psql命令只是psql使用适当的命令行参数调用并以某种方式传递密码。我可以在没有这样的heroku命令的情况下重现问题:

psql -U random_username -h ec2-10-10-10-10.compute-1.amazonaws.com -p 5432 random_dbname
Password for user random_username: 
psql (9.1.4)
Segmentation fault

所以看来问题出在psql二进制文件上。我查看了核心转储的堆栈跟踪,看来问题出在 SSL 处理中(Heroku 使用它,但通常不用于与 localhost 的连接):

#0  0x00000001000da622 in SSL_get_current_cipher ()
#1  0x0000000100007415 in printSSLInfo ()
#2  0x00000001000073c6 in connection_warnings ()
#3  0x00000001000141dd in main ()

这是有道理的,因为psql与 Heroku 的成功连接确实会吐出一行关于 SSL 密码连接的信息:

heroku pg:psql --app wattdepot-kukuicup-uhm-staging
psql (9.1.3, server 9.1.4)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

random_dbname=>

我没有进一步调查过。

于 2012-08-16T04:20:53.630 回答
1

我遇到了完全相同的问题。根据 Heroku 的建议,我刚刚从 postgres 9.1.4 更新到 9.1.5,现在“heroku pg:psql”工作正常。

于 2012-08-20T23:14:00.423 回答
1

如前所述,我们绝对只是使用带有参数的 psql 命令,所以我真的不认为 Heroku 方面有什么问题。似乎 psql 中有一个错误显然已经修复,所以我认为更新你的本地 postgres 应该可以解决问题(它似乎已经修复了到目前为止我与之交谈过的每个人的问题。

于 2012-08-21T16:18:26.763 回答