为什么SQL数据库无法连接?MySQL认证协议不兼容问题如何解决
MySQL连接报错"Client does not support authentication protocol requested by server"解决方案
问题根源
该报错由MySQL服务端和连接驱动的认证协议不兼容导致,和收费完全无关。MySQL 8.0及以上版本默认使用caching_sha2_password作为用户认证插件,而LiveCode内置的MySQL连接驱动版本普遍偏低,仅支持旧版的mysql_native_password认证协议,因此在认证环节触发报错。
相关疑问解释
- 预检查正常的原因:预检查仅验证数据库实例运行状态、端口连通性等基础配置,不会校验认证协议兼容性,因此到实际连接认证阶段才会触发错误。
- 收费相关:该报错和收费完全无关,MySQL社区版的服务端、客户端驱动均为免费开源软件,没有对应收费项,无需额外付费。
- upgrading MySQL client的含义:此处的MySQL client不是指独立的MySQL客户端软件,而是指发起数据库连接的工具内置的MySQL驱动(这里就是LiveCode自带的MySQL连接驱动),升级该驱动即可支持新版认证协议。
可行解决方案
方案1:修改数据库用户的认证协议(优先推荐,无需修改LiveCode配置)
操作步骤如下:
- 使用管理员账号登录MySQL服务端(可通过本地终端、云数据库控制台的SQL窗口操作)
- 执行以下命令修改对应用户的认证插件,替换命令中的占位符为你实际的数据库配置:
ALTER USER '你的数据库用户名'@'访问地址(本地用localhost,远程可填%或指定IP)' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
- 执行权限刷新命令使配置生效:
FLUSH PRIVILEGES;
- 重启MySQL服务后,回到LiveCode重新测试数据库连接即可。
方案2:升级LiveCode的MySQL驱动
如果无法修改数据库配置,可以通过升级驱动解决:
- 下载对应你操作系统的最新版MySQL社区版驱动文件(Windows为
libmysql.dll,Mac为libmysqlclient.dylib,Linux为libmysqlclient.so) - 找到LiveCode安装目录下的对应驱动存放位置,替换旧的驱动文件
- 重启LiveCode后重新测试连接即可。
内容的提问来源于stack exchange,提问作者Samuele
相关产品推荐
相关产品推荐

