【发布时间】:2013-05-20 21:53:27
【问题描述】:
我有一个使用 Java PaaS (CloudBees) 的帐户,该帐户通过 Amazon EC2 实例托管他们的平台。我的帐户带有对 MySQL 服务器实例的访问权限,并且我收到一个奇怪的错误,该错误仅在我尝试从我的 linux(Ubuntu 12.04 桌面)机器上的客户端登录 MySQL 服务器时发生,而不是我的 Windows 7 机器。
这是我尝试在我的 Ubuntu 机器上使用 MySQL Workbench 登录时出现的错误截图:
请务必注意,我在这台机器上安装了另一个 MySQL 客户端 (Squirrel SQL),当我尝试登录我的 dl_web 帐户时,它会抛出相同的错误。 Squirrel SQL 是一个纯 Java 应用程序,我尝试检查 MySQL Workbench 和 Squirrel SQL 是否没有共享任何共同的依赖项并且找不到任何(但我可能是错误的)。
但是,当我尝试使用 Windows 7 计算机上的 MySQL Workbench 实例登录时,我可以正常登录。
鉴于该错误消息中要检查的 4 件事的列表:
- 是的,当然 MySQL 服务器正在 EC2 实例上运行;否则 CloudBees 会倒闭,我将无法从我的 Windows 7 机器登录。
- 3306 是正确的端口 - 我已向 CloudBees 支持人员验证了这一点。
- 不确定这个 - 也许 MySQL 服务器实例被配置为拒绝来自 linux 客户端的连接?!?!
- 我使用的密码是正确的 - 我已经检查并重新检查并重新检查。
所以到目前为止我仅有的两个理论是:
- MySQL 服务器实例以某种方式配置为拒绝来自 Linux 客户端的连接(这可能吗?);或
- 我的 Ubuntu 机器上的 MySQL Workbench 和 Squirrel SQL 实例共享一些常见的依赖关系,这些依赖关系存在错误或配置错误;这是两种情况中更有可能发生的情况,但我一直未能成功确定这种依赖关系是什么......
另外 - 注意我从 MySQL Workbench 和 Squirrel SQL 得到的确切错误消息:
用户
'dl_web'@'%'拒绝访问数据库...
我的用户是dl_web...不是'dl_web'@'%'!!!很奇怪吧?!
有什么想法吗?提前致谢!
【问题讨论】:
-
您是否配置了用户安全性,以便诸如 'billybob'@'fios-1-2-13-10.midatlantic.net' 之类的用户或任何允许访问数据库的用户?
-
从 mysql.user 中选择 *
-
三件事,我确信两件事已经完成 1) 端口 3306 已打开 2) mysql 绑定在 0.0.0.0 而不仅仅是 127.0.0.1,以及 3) 你发出 mysql GRANT 命令,是的,使用那个奇怪的 user123@'some silly address' 和 password='somepassword' 授予对某些表的访问权限
-
运行 ifconfig 和 ipconfig,你可能会发现在虚拟化环境中你的 ip 地址是不同的。它们当然适合我在 windows7 下运行 VMWARE(同一个框)。像不同的子网。所需要的只是让主人有点不同,这也可以做到
标签: mysql ubuntu mysql-workbench squirrel-sql