虚拟机NAT模式下 Host ‘192.168.x.1‘ is not allowed to connect to this MySQL server 问题解决!

15,251 阅读1分钟

目录

环境:

解决方法:

总结:


环境:

本机地址:192.168.1.101

虚拟机地址(NAT模式):192.168.39.138

刚在虚拟机上面安装好MySQL,但是用工具远程连接时候,报错,在cmd模式下,使用命令

mysql -h 192.168.39.138 -u root -p yourpsswd 中报Host '192.168.39.1' is not allowed to connect to this MySQL server。奇怪的是我们连接的是192.168.39.138 :报的错误却是我NAT模式下,网卡的地址;其实很简单,在NAT模式下,在NAT的网络内,我们本机的IP地址 就是192.168.39.1

解决方法:

在Linux shell模式下,登录mysql控制台

命令: mysql -u root -p ,输入密码登录

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.39.1' IDENTIFIED BY 'yourpasswd' WITH GRANT OPTION

我们为当前主机在NAT模式的ip添加权限,而不是本机的实际IP

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host, user from user;
+---------------------+------+
| host                | user |
+---------------------+------+
| %                   | root |
| 127.0.0.1           | root |
| 192.168.39.1        | root |
+---------------------+------+
6 rows in set (0.00 sec)

这样在ip为192.168.39.1的ip地址就可以通过root用户加密码登录了。

总结:

其实我们看到问题,应该知道是没有权限的原因,但是因为中间绕了一个NAT的网络地址,所以就容易搞乱,在此记录