无法使用的unixODBC连接到远程MySQL服务器,libmyodbc
我在这一点绿色的,我希望我遇到的问题是一个简单的...编辑:在底部无法使用的unixODBC连接到远程MySQL服务器,libmyodbc
我的新信息需要连接到远程mysql(Amazon RDS)数据库。
以下几个教程后,我的unixODBC和libmyodbc安装客户端的配置,但是当我试图通过isql连接,我得到的错误
[08S01][unixODBC][MySQL][ODBC 5.1 Driver]Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[ISQL]ERROR: Could not SQLConnect
关于此错误的最令人困惑的部分是我没有试图连接到本地数据库,而是连接到远程数据库。我没有在客户端上的mysql.sock文件...这不是问题,但它是什么?
我感觉到一个配置错误,但我不知道它可能是什么。
如果我运行ODBCINST -j则输出是:
DRIVERS............: /etc/unixODBC/odbcinst.ini
SYSTEM DATA SOURCES: /etc/unixODBC/odbc.ini
USER DATA SOURCES..: /root/.odbc.ini
/etc/unixODBC/odbcinst.ini的内容是:
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib64/libmyodbc5.so
Setup = /usr/lib64/unixODBC/libodbcmyS.so
UsageCount = 5
[MySQL ODBC 515 Driver]
Description = ODBC 5.515 for MySQL
DRIVER = /usr/lib64/libmyodbc5-5.1.5.so
SETUP = /usr/lib64/unixODBC/libodbcmyS.so
UsageCount = 3
请注意,我不得不编造这个配置本身,我做了一个libmyodbc *的查找,并找到了这两个.so文件,从而为每个文件设置了一个驱动程序。搜索libodbcmyS *得到:
/usr/lib64/unixODBC/libodbcmyS.so.1
/usr/lib64/unixODBC/libodbcmyS.so
/usr/lib64/unixODBC/libodbcmyS.so.1.0.0
所以,我不知道该配置可能是什么。
/etc/unixODBC/odbc.ini的内容是:
[target_db]
Driver = MySQL
Server = [servername.com]
Port = 3306
Database = [databasename]
Option = 2
User = [username]
Password = [password]
我已经尝试了不同的选项中的“驱动程序”,从MySQL更改它,MySQL的ODBC驱动程序515,到路径.so文件(例如:/usr/lib64/libmyodbc5.so),所有这些都会得到相同的结果。
我运行:
odbcinst -i -d -f /etc/unixODBC/odbcinst.ini
其次:
odbcinst -i -s -l -f /etc/unixODBC/odbc.ini
其次:
odbcinst -s -q
打印出我的连接的名称,即[TARGET_DB]
然后,我尝试连接:
isql -v target_db user password
或只是
isql -v target_db
,并得到上述错误。
有人碰巧知道我在做什么错在这里?谢谢bunch-
编辑:
想提一提的是,我能够从使用mysql命令行工具,这台服务器连接到数据库。
我安装了一个本地mysql数据库,并且可以使用isql连接到这个数据库。它似乎完全忽略了我的odbc.ini文件,我必须用命令输入一个名称,即isql -v test-database,但它仍会尝试连接到本地主机,尽管我的设置。
我觉得好像我已经尝试了一切,但将继续在它,并会发布,如果我找到一个解决方案。
你可以尝试连接使用您的服务器的IP而不是odbc.ini的“服务器”行上的DNS条目。您是否已验证驱动程序是否安装了phpinfo()?
这也是我的第一个想法,但我在SLES 11.3上看到了同样的问题(CentOS 6.4正常工作)并且不起作用。 – jdborg
尝试使用odbc.ini文件的路径设置环境变量ODBCINI
。
请记住,您指向的odbc.ini文件必须是运行该程序的用户(即用户必须有权在此文件中写入)的“可写入”。
我也看到同样的问题,只在SLES 11.3上,CentOS 6.4没问题。 – jdborg