mysql如何解决navicat连接mysql8提示密码错误_修改身份验证插件

Navicat 连不上 MySQL 8:mysql_native_password 插件没设对

MySQL 8 默认用 caching_sha2_password 做身份验证,而 Navicat(尤其旧版)不支持它,直接报“密码错误”或“Authentication plugin ‘caching_sha2_password’ cannot be loaded”。这不是密码输错了,是插件不兼容。

最稳的解法是把 root(或其他用户)的认证方式切回 mysql_native_password,不是改密码,是改认证协议。

先用命令行登录 MySQL(哪怕用临时密码或跳过权限表的方式)执行:ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;如果要允许远程连接,把 ‘localhost’ 换成 ‘%’,但注意 host 必须已存在(查 SELECT Host,User FROM mysql.user;)别漏掉 FLUSH PRIVILEGES;,否则不生效

my.ini / my.cnf 里加 default_authentication_plugin 是预防性操作

只改单个用户插件能救急,但新创建的用户还会默认用 caching_sha2_password。想一劳永逸,得改配置文件。

Windows 下打开 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini,Linux 下通常是 /etc/my.cnf 或 /etc/mysql/my.cnf,在 [mysqld] 段落下加一行:

default_authentication_plugin=mysql_native_password

加完必须重启 MySQL 服务才生效(net stop MySQL80 && net start MySQL80 或 systemctl restart mysqld)。不重启等于没改。

注意:这个配置不影响已有用户的认证方式,只影响后续 CREATE USER 的默认行为。

远程连接还报 10061?检查三件事:端口、防火墙、Host 字段

就算插件改对了,Navicat 连远程 MySQL 8 还是失败,大概率卡在连接建立阶段,错误码 10061 表示“连接被拒绝”,和密码无关。

netstat -an | findstr :3306(Windows)或 ss -tlnp | grep :3306(Linux)确认 MySQL 确实在监听 0.0.0.0:3306,不是只监听 127.0.0.1检查 Windows 防火墙或 Linux ufw/iptables 是否放行了 3306 端口SELECT Host,User FROM mysql.user WHERE User=’root’; 看 root 的 Host 是 localhost 还是 %;如果是前者,远程连不上——得执行 UPDATE mysql.user SET Host=’%’ WHERE User=’root’ AND Host=’localhost’; FLUSH PRIVILEGES;(慎用,生产环境建议单独建远程用户)

跳过权限表改密码时,–skip-grant-tables 启动失败常见原因

很多人卡在这步:想重置密码,运行 mysqld –skip-grant-tables 却提示“不是内部或外部命令”或直接闪退。

没进到 MySQL 的 bin 目录就执行命令 —— 必须 cd "C:\Program Files\MySQL\MySQL Server 8.0\bin" 再运行服务名混淆:Windows 上 MySQL 8 默认服务名是 MySQL80,不是 mysql,停服务要用 net stop MySQL80Data 目录路径错乱:自定义安装路径后,mysqld 找不到 data 文件夹,会报错退出;此时需手动指定:mysqld –datadir="D:\mysql\data" –skip-grant-tables –console启动后光标不动 ≠ 成功:要看到类似 Ready for connections. 或至少没报错且进程持续运行才算真正启起来

改认证插件这事看着只是换一行 SQL,但实际要串起配置、权限表、网络层三层逻辑。漏掉任意一环,Navicat 都会安静地弹出“密码错误”——它根本没机会把密码发出去。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。