为什么我的计算引擎在我的计算实例上下载了MySQL客户端并将计算实例的公共IP添加到CloudSQL授权连接后,无法使用公共IP连接MySQL?
$ mysql -h <cloud-sql-host> -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'XXX'@<cloud_sql_host> (using password: YES)
必须设置几个区域才能授予访问权限。
1( 计算引擎作用域
转到适用于计算引擎的 Google Cloud Console。仔细检查计算引擎的服务帐户允许的范围。默认情况下,不允许使用云 SQL。
2( 服务帐户权限
检查是分配给分配给计算引擎的服务帐户的角色。你将需要一个云 SQL 角色。通常,您将需要Cloud SQL Client
.我前面提到的范围用于减少而不是增加服务帐户的权限。您仍需要向服务帐户授予正确的权限。
https://cloud.google.com/sql/docs/mysql/connect-external-app
3( 谷歌云SQL数据库权限
验证您的 MySQL 登录名是否已被"授予"登录权限。
- 转到 Google Cloud SQL 控制台。
- 转到"用户"选项卡。
- 选择您的用户名。
- 验证
host
是否为公共 IP 地址,或者可以选择使用%
来表示任何主机。
注意:我建议使用云 SQL 代理来访问云 SQL。这是安全的,您不需要 IP 地址用于云 SQL。
云 SQL 代理
因此,对于新的集成连接器和MySQL,我收到此错误:
[28000] "用户名"@'34.3.56.65' 的访问被拒绝
解决方案是将IP地址34.3.56.65添加到我的本地控制面板上MySQL管理员的白名单列表中。