腾讯云-云服务器远程连接Mysql Authentication plugin caching_sha2_password‘ cannot be loaded

本文指导用户在 CentOS 7 系统上修复 MySQL 8.0.23版本的验证错误,通过修改账户密码加密规则、设置验证策略和长度,重置root用户的主机名,并最终实现远程连接。

在远程连接腾讯云 Mysql
Authentication plugin caching_sha2_password’ cannot be loaded:
centos7中安装MySQL的版本为8.0.23
在这里插入图片描述
解决办法:修改账户密码加密规则并更新用户密码

SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述
设置将policy置为 low

set global validate_password.policy=0;

在这里插入图片描述
再设置length

set global validate_password.length=1;

在这里插入图片描述
再修改密码,查看root用户对应的host为% 而不是localhost

select host,user from user;

在这里插入图片描述

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxx';

在这里插入图片描述
再重新远程连接MySQL就可以了

在使用 Qt 连接 MySQL 数据库时,如果出现错误提示与 `caching_sha2_password` 认证插件相关的加载失败问题,通常是由于客户端库不支持 MySQL 8.0 及以上版本默认使用的 `caching_sha2_password` 插件所致。 MySQL 8.0 引入了新的默认认证插件 `caching_sha2_password`,而某些较旧的客户端库(如某些版本的 Qt SQL 模块或其依赖的 MySQL 客户端库)可能无法识别或加载该插件,导致连接失败。这种问题在使用 Qt 的 `QSqlDatabase` 类连接 MySQL 服务器时尤为常见,特别是在开发环境中使用的 MySQL 客户端库版本较旧的情况下。 ### 解决方案 1. **修改 MySQL 用户的认证方式** 可以将用户的认证方式从 `caching_sha2_password` 改为 `mysql_native_password`,这是旧版本 MySQL 使用的认证方式,兼容性更好。 使用 MySQL 命令行工具执行以下语句: ```sql ALTER USER 'your_user'@'your_host' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 这将更改指定用户的认证方式为 `mysql_native_password`,并刷新权限以使更改生效[^2]。 2. **更新 Qt 或 MySQL 客户端库** 确保使用的 Qt 版本及其依赖的 MySQL 客户端库(libmysqlclient 或 mariadb-connector)支持 `caching_sha2_password` 插件。 如果使用的是静态编译的 Qt 库,可能需要重新配置并链接支持新认证插件的 MySQL 客户端库。 3. **配置 Qt 数据库连接参数** 在 Qt 代码中设置连接参数时,可以尝试显式指定字符集和连接属性,以避免潜在的兼容性问题: ```cpp QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("your_database"); db.setUserName("your_user"); db.setPassword("your_password"); db.setConnectOptions("CLIENT_MULTI_STATEMENTS"); ``` 4. **检查插件路径和权限** 如果希望保留 `caching_sha2_password` 插件,需确保 MySQL 服务器上的插件路径配置正确,并且客户端库可以访问相应的 `.so` 文件(如 `/usr/lib/mysql/plugin/caching_sha2_password.so`)[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值