mysql - Linux 桌面上出现奇怪的 MySQL Workbench 错误

标签 mysql ubuntu mysql-workbench squirrel-sql

我有一个 Java PaaS (CloudBees) 账户,该账户通过 Amazon EC2 实例托管其平台。我的帐户可以访问 MySQL 服务器实例,但我收到一个奇怪的错误,只有当我尝试从 Linux(Ubuntu 12.04 桌面)计算机上的客户端登录 MySQL 服务器时才会出现该错误,但 Windows 7 计算机上不会出现该错误。

以下是我尝试在 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. 我使用的密码正确 - 我已经检查、再检查、再再检查。

所以到目前为止我仅有的两个理论是:

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

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

Access denied for user 'dl_web'@'%' to database...

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

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

最佳答案

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

首先,如果我进入 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 工作台)并使用 root 和密码 mypassword123z 登录,然后我就进入了。

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

关于mysql - Linux 桌面上出现奇怪的 MySQL Workbench 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749490/

相关文章:

mysql - 如何存储百分比值?

php - 使用 Codeigniter 和 Active Record 重用 where 条件的最佳方法

mysql - 为什么有索引的 MySQL 查询速度很慢?

bash - 在 gnome 终端的新选项卡中运行脚本

Django写入数据库,IntegrityError

c++ - 编译 sfml c++ (ubuntu)

mysql - 添加一列,默认值为后天日期

MySQL 通知程序 : Error subscribing to WMI Events: RPC_E_CALL_CANCELLED. 异常 HRESULT:0x80010002

mysql - 尝试在实例的索引中运行随机数,但出现索引超出范围错误

mysql - 如何更改 phpMyAdmin 中的事件