【发布时间】:2016-07-13 18:54:37
【问题描述】:
我在档案中搜索过,但找不到解决我的难题的答案。我正在用 Ruby 编写代码,并在我的本地 Mac Yosemite 上使用 watir webdriver 框架,并希望连接到 linux 机器上的 postgres 数据库。
我在本地 Mac 上安装了所需的 ruby gems
* 本地宝石 *
- dbd-pg (0.3.9)
- pg (0.18.4)
- dbi (0.4.5, 0.4.4)
我正在使用以下代码。
require 'rubygems'
require 'pg'
require 'dbd/pg'
require 'dbi'
conn = PGconn.connect("10.0.xx.xx","5432",'','',"mydbname","dbuser", "")
res = conn.exec('select * from priorities_map;')
puts res.getvalue(0,0)
conn.close if conn
在运行这个 我收到这些错误
.initialize': Could not connect to server: Connection refused (PG::ConnectionBad)
Is the server running on host "10.0.xx.xx" and accepting
TCP/IP connections on port 5432?
如果我使用代码
dbh = DBI.connect("dbi:pg:mydbname:ipaddress", "user", "")
row = dbh.exec('select * from etr_priorities_map;')
puts row.getvalue(0,0)
dbh.disconnect if dbh
我得到了错误
block in load_driver': Unable to load driver 'pg' (underlying error: wrong constant name pg) (DBI::InterfaceError) from System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
我是 Ruby 的新手。我该如何解决这些问题?
【问题讨论】:
-
你能远程登录到那个 IP 地址的 5432 端口吗? postgresql 是否在侦听该 IP?第一条错误消息是服务器拒绝连接,与您的代码无关等。如果它没有监听,将会改变。
标签: ruby postgresql watir-webdriver pg dbd-pg