我在这里遇到了类似的问题 https://www.googlecloudcommunity.com/gc/Data-Analytics/Big-Query-can-t-connect-to-Cloud-SQL/m-p/551813,但是那里的建议似乎不起作用。当尝试执行查询时,我得到这个:
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]
尝试从 BigQuery 查询到 MySQL 8.0.37 Cloud SQL 数据库时。尝试过两个不同的用户。与来自 Cloud SQL Studio 的这些凭证配合良好。在从 5.7 升级到 8.0 之前,这曾经有效。我确实将用户的身份验证类型更改为 caching_sha2_password,并且数据库正在以 caching_sha2_password 作为默认身份验证运行。
Cloud SQL 服务器日志显示:
[Note] [MY-010914] [Server] Got an error reading communication packets
对于每次查询尝试。
外部(mysql 命令行和 Intellij datagrid)和云运行 JDBC 连接也可以工作,只是 BigQuery 外部访问不行。
有什么想法吗?
您可以尝试使用
mysql\_native\_password
或caching\_sha2\_password
,然后需要重新启动云SQL实例才能使更改生效。
前往 Google Cloud Console
编辑 > 标志
将
default\_authentication\_plugin
更改为 mysql\_native\_password
重新启动您的 Cloud SQL 实例