gpt4 book ai didi

带有远程数据库的 Ruby ODBC

转载 作者:数据小太阳 更新时间:2023-10-29 07:35:46 27 4
gpt4 key购买 nike

我正在开发一个连接到遗留数据库的应用程序,Eloquence , 通过 ODBCSQL/R .我用 UnixODBC 设置我的服务器,并按如下方式设置驱动程序和数据源:

文件 /etc/odbcinst.ini

[SQLR]
Description=SQLR for Elqouence
Driver=/opt/sqlr/lib/libsqlrodbc.so
Driver64=/opt/sqlr/lib64/libsqlrodbc64.so
FileUsage = 1

文件/etc/odbc.ini

[reservations]
Description = SQLR datasource for RES database
Driver = SQLR
Database = res
Servername = eloq-dev
Port = 8003
UserName = sqlrodbc

我确认我可以通过运行 isql reservations 连接到数据源,并且我运行了几个查询来确保。没有问题。然后我使用 ODBC gem 和以下代码将我的 Ruby 代码连接到数据库:

require 'rdbi-driver-odbc'
RDBI.connect :ODBC, db: "reservations"

输出以下错误:

Unable to connect to host.
Host 127.0.0.1, Service sqlrodbc
errno 111: Connection refused
ODBC::Error: 08001 (3047) [unixODBC][Marxmeier][SQL/R ODBC Client]connection failure

我担心它使用 127.0.0.1 作为主机,即使在文件 /etc/hosts 中设置了 eloq-dev 主机名。 到不同的地址。我还担心 isql 可以工作,但 ODBC gem 没有。

此外,当我使用 tcpdump 命令时,与我的连接相关的唯一输出是:

tcpdump -i lo

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
18:38:39.688264 IP localhost.50447 > localhost.mcreport: Flags [S], seq 3355035364, win 43690, options [mss 65495,sackOK,TS val 1655798115 ecr 0,nop,wscale 7], length 0
18:38:39.688280 IP localhost.mcreport > localhost.50447: Flags [R.], seq 0, ack 3355035365, win 0, length 0

根本没有数据包通过网络传出。

我也更改了我的代码以使用 RDBI 而不是 Ruby-ODBC,但我遇到了同样的问题。

最佳答案

我的问题最终是双重的。我通过 VPN 连接连接到 Eloquence 和 SQL/R,但它并没有我想象的那么稳定,因此连接中断了。

另一个问题是 SQL/R 在中使用 Server 而不是 ServerNameService 而不是 Port odbc.ini 文件。

一旦我稳定了我的 VPN 并修复了 odbc.ini 文件,我就可以毫无问题地连接了。

关于带有远程数据库的 Ruby ODBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30984756/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com