【问题标题】:ERROR 1130 (HY000) or ERROR 2003 (HY000) : connect mysql from windows to ubuntu on VMwareERROR 1130 (HY000) 或 ERROR 2003 (HY000) : 将 mysql 从 windows 连接到 VMware 上的 ubuntu
【发布时间】:2015-06-18 12:55:35
【问题描述】:

我尝试了很多方法,但都失败了。我想从 Windows 连接 VMware 中的 Linux 上的 MySQL。

  • VMware:11.1.0 build-2496824
  • Linux:Ubuntu 14.10
  • Windows:win 8.1 x64
  • MySQL 版本

    • windws:5.6.24
    • Linux:5.5.43
  • IP

    • Windows:192.168.1.102
    • Linux:192.168.1.100

PS:Ping 请求相互接收数据包。

当我输入cmd时:

mysql -h 192.168.1.100 -u root_test -p

我确定我输入了正确的密码,但是 mysql 服务器返回“ERROR 1130 (HY000): Host '192.168.1.100' is not allowed to connect to this MySQL Server” 或“ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (10061)”。

Proto   Recv-Q   Send-Q   Local Address      Foreign Address       State       PID/Program name
tcp          0        0   0.0.0.0:3306       0.0.0.0:*             LISTEN        -    



my.cnf:bind-address = 0.0.0.0

service iptables status
iptables: unrecognized service

select user,host from user;
+------------------+---------------+
| user             | host          |
+------------------+---------------+
| root             | 127.0.0.1     |
| root_test        | 192.168.1.102 |
| debian-sys-maint | localhost     |
| root             | localhost     |
+------------------+---------------+

show grants for 'root_test'@'192.168.1.102';

+-------------------------------------------------------------------------------------------------------------------------------+
| Grants for root_test@192.168.1.102                                                                                            |
+-------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root_test'@'192.168.1.102' IDENTIFIED BY PASSWORD 'MD5-PWD'                                   |

+-------------------------------------------------------------------------------------------------------------------------------+

更新

我终于通过在 Windows 上将 IPv4 属性 Obtain an IP address automatically 更改为 use the following IP address 来解决这个问题。

PS:VMware的网络设置是Bridged。

非常感谢@s3v3n 和@Drew Pierce,你们很友善。谢谢。

【问题讨论】:

  • 你跑FLUSH PRIVILEGES了吗?
  • 是的,我做到了。但它显示0 rows affected :(
  • 尝试授予通配符主机:GRANT ALL PRIVILEGES ON * . * TO 'root_test'@'%'; FLUSH PRIVILEGES;
  • 顺便问一下,在尝试使用命令行连接时,您是否指定了要连接的主机?像这样:mysql -u root_test -p -h 192.168.1.100
  • 你正试图从 Windows 机器连接到 Linux 机器上的 MySQL 服务器,对吧?

标签: mysql linux


【解决方案1】:

1) 更改 my.conf(无论您的 mysql conf 文件被称为什么)。并将绑定地址设置为 0.0.0.0,因为它是概率 127.0.0.1

2) 停止/重启 mysql 守护进程

Connections now are not limited to those from localhost. The default is localhost for obvious security reason until dev guy tweaks it

3) 带刷新的授权

4) 防火墙

祝你好运!


编辑:

显示在某些环境中设置用户/进入所需的信息

主要是它显示了 sqlyog 如何提示您输入您的主机名,如所见或 被 mysql 守护进程知道(不管你认为你的 IP 是什么) 地址是)。

所以我坐在这里,认为我工作站上的外部 IP 地址是 188.188.188.188,然后我在服务器中创建用户和授权,但最终无法进入 mysql。

我也在寻找严格的安全措施。

在 aws ec-2 或您的 vm 环境中创建一个实例。

我的使用 public dns = ec2-23-21-7-136.compute-1.amazonaws.com 创建

仅开放 22 端口 (ssh)

mysql 已内置并正在运行,对外界视而不见。

运行 sqlyog 进入。它会爆炸。好的。可见here


ssh/putty 进入或坐在服务器上(我的在新加坡,不是坐在) 在 linux 提示符下我进入 mysql

所以现在我在 mysql 提示符下(不是操作系统,我知道你知道这个别人可能不知道 :>)

mysql> select user,host from mysql.user;
+------------------+------------------------+
| user             | host                   |
+------------------+------------------------+
| root             | 127.0.0.1              |
| foo_user         | w.x.y.z                |
+------------------+------------------------+
2 rows in set (0.00 sec)

进入 vm 并为入站 0.0.0.0/0(任何地方)打开端口 3306


再次为 root 尝试 sqlyog 连接。

炸弹。好的。炸弹给了我们很好的信息。

可见here

我知道mysql认为我应该是谁,很高兴root无法进入

'root'@'xxxx.yyyy.comcastbusiness.net'


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| foo                |
| mysql              |
| performance_schema |
| phpmyadmin         |
| test               |
+--------------------+
6 rows in set (0.00 sec)

这样我就创建了用户

CREATE USER 'fred7'@'xxxx.yyyy.comcastbusiness.net' IDENTIFIED BY 'bonehead7';

和

GRANT ALL PRIVILEGES ON test.* TO 'fred7'@'xxxx.yyyy.comcastbusiness.net';

对于那些热衷于通配符的人来说,让你的安全性不那么严格


mysql> select user,host from mysql.user;
+------------------+-------------------------------+
| user             | host                          |
+------------------+-------------------------------+
| root             | 127.0.0.1                     |
| foo_user         | w.x.y.z                       |
| fred7            | xxxx.yyyy.comcastbusiness.net |
+------------------+-------------------------------+

再次尝试 sqlyog 连接,这次是 user=fred7 密码=bonehead7 好的。

我在。

可见here


而且有很多欢乐(至少对我来说)

【讨论】:

  • 我试过但失败了,关于防火墙是“iptables:无法识别的服务”
  • 做 1 和 2。然后重新测试。 3 和 4 是要考虑的事情,而不是要输入的实际命令
  • 有时,同一机器上的 vmware 等虚拟机位于不同的子网上。您有 3 个 IP 地址/子网要弄清楚。从 vmware 中运行的提示中记录 ip/sub
  • 我已经设置了set bind-address to 0.0.0.0和service mysql restart。但它不起作用。同样的错误消息。ERROR 11130...
  • 而有问题的“ServerIP”文件到底是什么。很重要
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 2023-04-01
  • 2016-04-08
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
相关资源
最近更新 更多