目录
环境:
本机地址: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的网络地址,所以就容易搞乱,在此记录
![](https://i-blog.csdnimg.cn/blog_migrate/d580aeb88a0099d4bc5c059c943c1e19.jpeg)