MySQL - ODBC连接失败,Workbench连接正常

8

我正在尝试在我的电脑(Windows 7)上安装和测试MySQL ODBC连接器,以连接到远程MySQL DB服务器,但是当我配置和测试连接时,我一直收到以下错误:

Connection Failed
[MySQL][ODBC 5.3(w) Driver]Access denied for user 'root'@'(my host)' (using password: YES):

问题在于,我可以使用MySQL Workbench(从本地机器远程连接到远程服务器)连接得很好。 我已经广泛阅读了这个FAQ,但没有帮助。我尝试过:
  • 检查服务器上是否运行了mysql(是的。我甚至尝试多次重新启动它);
  • 检查远程服务器上的端口是否正在监听连接。是的。
  • 使用MySQL Workbench连接到远程服务器。可以。
  • 检查远程数据库的IP地址和端口是否正确;
  • 检查用户(root)和密码是否正确;
  • 在ODBC配置窗口中重新输入密码;
  • 检查并修改远程服务器上“my.conf”的内容,以允许来自各方面的连接(0.0.0.0);
  • 从mysql中包括(我的主机)在GRANT HOST表中(我还尝试了通配符'%',但与无效果相同);
  • 在远程MySQL服务器上运行FLUSH HOSTS; 和FLUSH PRIVILEGES; 命令以重置特权缓存;
  • 在配置ODBC驱动程序期间关闭防火墙;
  • 检查MySQL变量'skip_networking'是否关闭,以允许远程连接。

令人沮丧的是,我可以使用MySQL Workbench在本地机器上连接(具有相同的IP /用户/密码),但无法使用ODBC连接。

我可能做错了什么,或者什么可能会破坏我的尝试连接ODBC?

更新:我设法设置了ODBC驱动程序并在服务器端正确运行它。我可以使用命令行(使用“isql”命令)在那里连接到localhost。但是,我仍然无法使用Windows 7计算机远程连接。


密码是空的吗? - simon at rcl
不,我的密码是非空的。我尝试过多次重新编写它,但它依然无法正常工作。我可以使用MySQL Workbench连接器从我的计算机连接到远程服务器,并使用相同的用户名和密码。 - PDoria
3个回答

7

问题已解决。

事实证明,这是一个权限问题。我在远程服务器 SQL 上运行了以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'(my_host)' IDENTIFIED BY '(my_password)';

我之前执行了这个命令,但是没有使用“IDENTIFIED BY”密码。然后,为了重置mysql权限缓存,我也执行了

FLUSH PRIVILEGES;

现在它可以正常工作了。


0

对我也有用,但只能使用64位ODBC驱动程序,不能使用MySQL 32位。


修正后,仅原始的MariaDB ODBC驱动程序起作用。MySQL ODBC会带来误导性错误。 - Laminar

0
我们曾经遇到过一个类似的情况,即在服务器上授予了'user'@'%',但在一台PC上ODBC连接失败,而Workbench却成功连接。
MariaDB 10.0.31, MySQL ODBC 3.51, MySQL Workbench 8.0
通过安装MariaDB Connector/ODBC 3.1来解决问题,而不是使用MySQL ODBC (https://downloads.mariadb.org/connector-odbc/)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接