Linux桌面上奇怪的MySQL Workbench错误

时间:2013-05-25 12:18:42

标签: mysql ubuntu mysql-workbench squirrel-sql

我拥有一个Java PaaS(CloudBees)帐户,该帐户托管其Amazon EC2实例的平台。我的帐户可以访问MySQL服务器实例,我收到一个奇怪的错误,只有当我尝试从我的Linux(Ubuntu 12.04桌面)计算机上的客户端登录MySQL服务器时,才会发生这种错误,而不是我的Windows 7计算机。 / p>

以下是我尝试在Ubuntu计算机上使用MySQL Workbench登录时的错误屏幕截图:

enter image description here

重要的是要注意我在这台机器上安装了另一个MySQL客户端(Squirrel SQL),当我尝试登录我的dl_web帐户时,会抛出同样的错误。 Squirrel SQL是一个纯Java应用程序,我试图检查MySQL Workbench和Squirrel SQL是否共享任何常见的依赖项并且找不到任何(但我可能是错的)。

但是,当我尝试使用生活在Windows 7计算机上的MySQL Workbench实例登录时,我可以正常登录。

给出要从该错误消息中检查的4件事的列表:

  1. 是的,当然MySQL服务器正在EC2实例上运行;否则CloudBees将停业,我将无法从我的Windows 7机器登录。
  2. 3306是正确的端口 - 我通过CloudBees支持人员验证了这一点
  3. 对此不确定 - 也许MySQL服务器实例以某种方式配置为拒绝来自Linux客户端的连接?!?!
  4. 我使用的密码是正确的 - 我已经检查并重新检查并重新检查。
  5. 所以我到目前为止只有两种理论是:

    • MySQL服务器实例以某种方式配置为拒绝来自Linux客户端的连接(这是否可能?);或
    • 我的Ubuntu机器上的MySQL Workbench和Squirrel SQL实例正在共享一些错误或配置错误的常见依赖项;这两种情况中的可能性更大,但我没有成功地查明这种依赖性是什么......

    此外 - 请注意我从MySQL Workbench和Squirrel SQL获得的确切错误消息

      

    用户'dl_web'@'%'拒绝访问数据库...

    我的用户是dl_web ...而不是'dl_web'@'%'!奇怪,对吧?!

    有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

您似乎处于AWS内的托管环境中,您无权访问root或查看表上的授权,但这可能会帮助其他人并显示一些步骤。

首先,如果我进入sqlyog(或toad或mysql workbench)并尝试连接到AWS mysql,我会收到以下错误:

http://img836.imageshack.us/img836/4594/out1.GIF

所以问题是root@pool-72-93-207-216.bstnma.fios.verizon.net

所以我在root进入mysql(是的,我知道你可能无法做到这一点!)..

我执行以下

mysql> use test;


mysql> grant all privileges on test.* to 'root'@'pool-72-93-207-216.bstnma.fios.verizon.net'  identified by 'mypassword123z';




mysql> select user,host from mysql.user;
+------------------+--------------------------------------------+
| user             | host                                       |
+------------------+--------------------------------------------+
| foo_user         | %                                          |
| root             | 127.0.0.1                                  |
| foo_user         | 72.93.207.216                              |
| foo_user2        | 72.93.207.216                              |
| root             | ::1                                        |
|                  | domU-12-31-38-04-B2-89                     |
| root             | domU-12-31-38-04-B2-89                     |
|                  | localhost                                  |
| debian-sys-maint | localhost                                  |
| phpmyadmin       | localhost                                  |
| root             | localhost                                  |
| root             | pool-72-93-207-216.bstnma.fios.verizon.net |
+------------------+--------------------------------------------+

mysql> SHOW GRANTS FOR 'root'@'localhost';
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*4F4504C8CA8D22648E58B5092F653457698A9EBE' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+

mysql> show grants for 'root'@'pool-72-93-207-216.bstnma.fios.verizon.net';
+----------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@pool-72-93-207-216.bstnma.fios.verizon.net                                                                                   |
+----------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'pool-72-93-207-216.bstnma.fios.verizon.net' IDENTIFIED BY PASSWORD '*CACE4BB4D0A5D265BA7FCBEED600DC8976884A43' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'root'@'pool-72-93-207-216.bstnma.fios.verizon.net'                                                      |
+----------------------------------------------------------------------------------------------------------------------------------------------+

然后我回到sqlyog(或toad或mysql workbench)并使用root和密码mypassword123z登录,我就在。

此外,您可以像Putty一样使用端口22和AWS pem文件创建安全的SSH代理隧道。