问题描述
Navicat连接打开连接时,报错:
解决办法
网上很多解决办法,是重新修改密码,用了之后就会觉得都不好使。
此错误实际上是远程错误。本地IP没有访问权限,访问被拒绝。我们需要在数据库中添加对本地IP的访问权限:
数据库的访问权限对外开放,即所有IP都有资格访问数据库
打开mysql命令行,输入
CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
接着刷新权限:
FLUSH PRIVILEGES;
重启mysql服务即可成功
net stop mysql net start mysql
附加
1、此解决方案是针对 MySQL 8,其他版本如下解决
因为从 MySQL 8 开始,您不再可以(隐式)使用该GRANT命令创建用户。请改用CREATE USER,然后使用GRANT语句。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; flush privileges; net stop mysql net start mysql
2、为指定的ip开放访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.1' IDENTIFIED BY ‘password' WITH GRANT OPTION; flush privileges; net stop mysql net start mysql