使用BigQuery外部查询连接MySQL 8.4实例时遇认证插件错误
问题描述
Invalid table-valued function EXTERNAL_QUERY Failed to connect to MySQL database. Error: MysqlErrorCode(2059): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory at [1:15]
执行的查询语句:
SELECT * FROM EXTERNAL_QUERY("myproject.us-east4.my-externalConnection", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");
注:MySQL 8.0实例上的外部查询可正常运行,仅MySQL 8.4实例出现该问题。
解决方案
方案一:修改MySQL用户的认证插件为mysql_native_password
BigQuery外部查询的客户端环境暂不支持MySQL 8.4默认的caching_sha2_password认证插件,可将用于连接的MySQL用户切换为兼容性更好的mysql_native_password:
- 登录到你的MySQL 8.4实例
- 执行以下SQL修改用户认证方式(替换实际的用户名、密码和主机限制):
ALTER USER 'your_connection_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_user_password'; - 刷新权限使修改生效:
FLUSH PRIVILEGES;
方案二:验证外部连接配置
确保GCP外部连接(myproject.us-east4.my-externalConnection)使用的是上述修改后的用户,并且实例的防火墙规则允许BigQuery的IP段访问MySQL默认端口3306。
验证
重新执行你的BigQuery外部查询语句,确认是否能正常连接并返回数据。
内容的提问来源于stack exchange,提问作者Xaphann
相关产品推荐
相关产品推荐

