Debian服务器GitLab CI报MySQL 2054认证错误修改插件未解决
GitLab CI MySQL 2054 认证错误解决方案
你遇到的报错如下:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema =
and table_name = migrations and table_type = 'BASE TABLE')
你已尝试修改'root'@'localhost'账号的认证规则未生效,可按以下步骤排查解决:
操作步骤
- 修正对应访问账号的认证规则
你修改的'root'@'localhost'仅匹配本地发起的数据库请求,GitLab Runner通过网络访问MySQL时,匹配的用户Host通常为%(通配所有IP)或Runner的固定内网IP,执行如下SQL修改对应账号配置:-- 替换为实际使用的数据库用户名、密码、对应的Host地址 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的数据库密码'; FLUSH PRIVILEGES; - 调整Debian环境下MySQL的全局认证配置
编辑MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]配置段中添加如下参数,指定全局默认认证插件为mysql_native_password:
保存后重启MySQL服务使配置生效:default-authentication-plugin=mysql_native_passwordsystemctl restart mysql - 验证GitLab CI数据库配置合法性
确认.gitlab-ci.yml或CI环境变量中配置的数据库连接地址、用户名、密码、库名无拼写错误,且对应账号拥有目标库的读写权限,可直接在Runner节点执行命令测试连通性:mysql -h <数据库IP地址> -u root -p'你的数据库密码' <mydatabase> - 适配PHP版本兼容问题(PHP项目适用)
低于7.4的PHP版本对MySQL 8.0默认的caching_sha2_password认证插件支持存在缺陷,若以上操作均无效可升级PHP版本至7.4及以上。
内容的提问来源于stack exchange,提问作者Sacha Durand
相关产品推荐
相关产品推荐

