无法使用unixodbc,libmyodbc连接到远程mysql服务器
作者:互联网
我在这方面有点绿,我希望我遇到的问题很简单……编辑:底部的新信息
我需要连接到远程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尽管我的设置.
我觉得好像我已经尝试了所有的东西,但会保留它并且如果我找到解决方案就会发布.
解决方法:
您可以尝试使用服务器的IP而不是odbc.ini的“服务器”行上的dns条目进行连接.您是否已验证驱动程序是否安装了phpinfo()?
标签:mysql,odbc,unixodbc 来源: https://codeday.me/bug/20190708/1405982.html