使用Navicat连接虚拟机上的mysql时报错Host ‘192.168.32.1‘ is not allowed to connect to this MySQL server。
一、网上查找方法和过程中的问题:
允许用户lwd从ip为192.168.32.1的主机连接到mysql服务器,并使用lwdlwd作为密码
GRANT ALL PRIVILEGES ON . TO ‘lwd’@‘192.168.1.3’ IDENTIFIED BY ‘lwdlwd’ WITH GRANT OPTION;
实际中出现错误:
check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY "host123" WITH GRANT OPTION' at line 1
原因:因为新的mysql版本已经将创建账户和赋予权限的方式分开了,形式如下:
创建账户:create user ‘用户名’@’访问主机’ identified by ‘密码’;
赋予权限:grant 权限列表 on 数据库 to ‘用户名’@’访问主机’;
二、在网上综合的解决方法
- 首先登陆mysql,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"
use mysql update user set host='%' where user=root;
- 赋予权限
grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ ;GRANT ALL ON *.* TO 'root'@'%';
- 执行FLUSH PRIVILEGES命令
#通过update语句直接去修改了mysql.user表中的数据的时候,此时我们需要执行flush privileges;命令。 FLUSH PRIVILEGES;