Navicat连接mysql - Authentication plugin ‘caching_sha2_password‘ cannot be loaded: dlopen

本文指导如何跳过秘密验证并临时修改MySQL root用户的密码,包括使用`skip-grant-tables`选项、设置新密码123456sww,以及最后恢复默认权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决办法: 

1. 跳过秘密验证

修改密码: vim /etc/my.cnf  中添加  skip-grant-tables
修改密码:[root@centos-linux bin]# ./mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.18 MySQL Community Server - GPL

然后去掉skip-grant-tables

2. 重制密码为123456sww,如下

mysql -u root -p 
// 回车
// 将密码修改为123456sww
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456sww';

3. 用新密码链接mysql,登录成功!

### 错误原因分析 在使用 Sequel Pro 连接 MySQL 数据库时,遇到连接失败的问题通常与身份验证插件的兼容性有关。MySQL 8.0 引入了新的默认身份验证方法 `caching_sha2_password`,而 Sequel Pro 尚未完全支持该插件。这导致在尝试连接时出现错误信息: ``` Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found ``` 此问题的核心在于 Sequel Pro 不支持新的身份验证机制,并且系统中可能没有正确配置或安装所需的插件文件。 ### 解决方案 #### 1. 使用传统密码方式初始化数据库 如果尚未初始化 MySQL 数据库,则可以通过以下步骤设置传统密码认证方式: - 打开 **系统偏好设置**。 - 找到并点击 **MySQL**。 - 点击 **Initialize Database**。 - 输入新密码,并选择 **Use legacy password encryption** 选项。 - 完成初始化后,重启 MySQL 服务。 - 再次使用 Sequel Pro 进行连接 [^2]。 #### 2. 更改现有用户的认证方式 如果 MySQL 数据库已经初始化并且用户账户使用的是 `caching_sha2_password` 认证方式,则可以更改该用户的认证方式为 `mysql_native_password`: 通过终端登录 MySQL: ```bash mysql -u root -p ``` 执行以下 SQL 命令来修改用户的认证方式: ```sql ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; ``` 替换 `your_username` 和 `your_password` 为你实际使用的用户名和密码。 完成更改后,退出 MySQL 并重启 MySQL 服务: ```bash sudo mysql.server restart ``` 之后再次尝试使用 Sequel Pro 连接数据库 [^1]。 #### 3. 更新 Sequel Pro 或使用替代工具 由于 Sequel Pro 的官方版本尚未支持 `caching_sha2_password` 插件,可以考虑使用社区维护的开发分支或其他现代数据库管理工具(如 DBeaver、TablePlus 或 Navicat)以获得更好的兼容性。 ### 注意事项 - 如果是全新安装的 MySQL 实例,重新初始化数据库是一个可行的方法;但如果已有重要数据,则应谨慎操作,以免造成数据丢失 [^3]。 - 修改用户身份验证方式之前,请确保备份数据库中的关键数据。 - 在某些情况下,检查防火墙设置或端口是否开放也可能有助于解决连接超时问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值