用navicat工具连接mysql的时候报错localhost is not allowed to connect
百度到有两个解决方法:改表法与授权法,但是我试过都不行,只要在my.ini文件里删除skip-grant-tables 就又连接不上了。
无数种尝试之后,我发现把这两个方法结合起来用好像可以。
方法如下:
1.在mysql安装目录下的 my.ini 文件中的 [mysqld] 标签里加上 skip-grant-tables 跳过权限表
2.重启mysql服务,这时可以连接上
3.改表
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
4.授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
在网上看到这一句的意思是允许用户在任何地方可连接,password记得修改成root的密码
5.删除my.ini里的skip-grant-tables,重启mysql,就可以连接上了