我想知道是否有人能帮我解决一个我似乎无法解决的 MySQL ODBC 问题。我对 Linux 还比较陌生,所以任何能提供的帮助都会很有帮助。
如果有帮助的话,我在两台 VirtualBox 机器上运行 Ubuntu 14.04 x64。
我在一台机器上安装了 MySQL 服务器,它似乎可以正常工作,因为我可以创建数据库、表、插入和删除数据并运行查询,没有任何问题。我在 MySQL 中创建了一个名为 的数据库my_db
和一个名为 的用户db_root
。
我现在正尝试从另一台机器连接到此 MySQL 服务器,但似乎无法使 ODBC 连接正常工作。我查看了许多在线说明,但它们几乎都提供了相同的说明集。
首先安装unixODBC
,unixODBC-dev
然后libmyodbc
编辑文件/etc/odbcinst.ini
。我的看起来像:-
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
然后编辑/etc/odbc.ini
文件。我的看起来像:-
[mysql-connector]
Driver = MySQL
Description = ODBC for MySQL
Server = 192.168.1.1
Port = 3306
User = db_root
Password = password
Database = my_db
Option = 3
Socket =
这是一些说明发生变化的地方。有人说目录中应该有一个名为mysql.sock
或的文件,并且应该将此文件设置为文件中的路径。我没有目录,在我的计算机上搜索并显示空白。有些说明确实包括mysqld.sock
/var/lib/mysql
SOCKET
odbc.ini
mysql
/var/lib
mysql.sock
mysqld.sock
SOCKET
文件中的字段odbc.ini
。
然后所有的说明都说,用类似这样的命令测试你的连接echo "select 1" | isql -v mysql-connector
。我总是得到同样的错误[S1000][unixODBC][MySQL][ODBC 5.1 Driver]Can't connect to MySQL server on '192.168.1.1' (111)
。
我已经搜索了好几天,但似乎找不到任何可以指引我解决这个问题的正确方向的东西。
答案1
经过一番搜索,我发现答案是 MySQL 设置。在/etc/mysql/my.cnf,MySQL 只监听 3306 端口的本地流量。通过删除以下行可以解决这个问题绑定地址 = 127.0.0.1在里面我的cnf文件。