无法使用unixodbc,libmyodbc连接到远程mysql服务器

时间:2014-02-24 18:30:08

标签: mysql odbc unixodbc

我在这方面有点绿,我希望我遇到的问题很简单...编辑:底部的新信息

我需要连接到远程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

并得到上面显示的错误。

有人碰巧知道我在这里做错了什么吗?非常感谢 -

编辑:

想提一下,我可以使用mysql命令行工具从这台服务器连接到数据库。

我安装了一个本地mysql数据库,我可以使用isql连接到它。它似乎完全忽略了我的odbc.ini文件,我必须使用命令输入一个名称,即isql -v test-database,但它仍然尝试连接到localhost,尽管我的设置。

我觉得好像我已经尝试了所有的东西,但会坚持下去,如果找到解决方案,我会发布。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用服务器的ip而不是odbc.ini的“Server”行上的dns条目进行连接。您是否已验证驱动程序是否安装了phpinfo()?

答案 1 :(得分:0)

尝试使用odbc.ini文件的路径设置环境变量ODBCINI

请记住,您指向的odbc.ini文件必须由运行该程序的用户“可写”(即用户必须具有写入此文件的权限)。

答案 2 :(得分:0)

chmod g + w .odbc.ini为我做到了,因为我们使用ORACLE-Start运行数据库,而crs-User似乎负责了