• 问题描述
    • 解决办法
      • 数据库的访问权限对外开放,即所有IP都有资格访问数据库
    • 附加
      • 1、此解决方案是针对 MySQL 8,其他版本如下解决
      • 2、为指定的ip开放访问权限

问题描述

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 mysqlnet 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 mysqlnet start mysql

2、为指定的ip开放访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.1' IDENTIFIED BY ‘password' WITH GRANT OPTION;flush privileges;net stop mysqlnet start mysql