我正在尝试使用Heroku的Postgresql。我使用从http://www.enterprisedb.com/products-services-training/pgdownload下载的安装程序安装了Postgres 9.1.4。然后在我的/etc/profile
中,我将psql
的位置添加到了我的PATH
。当我尝试将psql
shell与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 version
显示了ruby/1.8.7
,但我使用的是rvm use 1.9.3
。这个Ruby不匹配会成为问题吗?如果是这样,我该如何解决?由于分段错误错误消息非常模糊,我不知道下一步该怎么做。这一切都在Mac OS X 10.6.8上。
答案 0 :(得分:1)
我联系了Heroku支持,他们建议通过Homebrew安装Postgres(http://mxcl.github.com/homebrew/)。我这样做了,现在我可以访问我的Heroku数据库了。
答案 1 :(得分:1)
我也有这个问题:psql
在本地工作,但是段heroku pg:psql
的段错误。我发现降级到Postgres 9.1.3(installer still available)解决了它。
看起来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 ()
这是有道理的,因为与Heroku的成功psql
连接确实吐出了关于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=>
我没有进一步调查过。
答案 2 :(得分:1)
我遇到了完全相同的问题。关于Heroku的建议我刚刚从postgres 9.1.4更新到9.1.5,现在“heroku pg:psql”工作正常。
答案 3 :(得分:1)
我们肯定只是按照已经提到的参数推荐psql命令,所以我并不认为Heroku方面有什么问题。似乎psql中有一个错误显然已得到修复,所以我认为更新你的本地postgres应该可以做到这一点(无论如何,它似乎已经为我所谈过的所有人提供了固定的东西。