我在 Google Cloud > Storage > SQL > MYSQL 中创建了实例。现在我必须在其中导入数据库,所以我正在尝试连接到 MYSQL
使用管理员,但它给出了以下错误
SQLSTATE[HY000] [2002] 操作超时
我也尝试通过 HeidiSQL > MariaDB 或 MYSQL (SSL Tunnel) 但在这里它也没有连接并给出错误
我提到
Host:SQL实例的公网IP
用户名:root
任何建议,有什么可以解决的?
我在 Google Cloud > Storage > SQL > MYSQL 中创建了实例。现在我必须在其中导入数据库,所以我正在尝试连接到 MYSQL
使用管理员,但它给出了以下错误
SQLSTATE[HY000] [2002] 操作超时
我也尝试通过 HeidiSQL > MariaDB 或 MYSQL (SSL Tunnel) 但在这里它也没有连接并给出错误
我提到
Host:SQL实例的公网IP
用户名:root
任何建议,有什么可以解决的?
您的错误通常意味着防火墙阻止了您的连接尝试。
对于 Cloud SQL,这通常意味着您尚未启用实例级访问。
由于您的错误是 10060,这是一条 Windows WinSock 错误消息,我假设您在 Windows 上运行。Linux 的步骤与此类似。
有两种方法可以启用对 Cloud SQL 的访问:
云 SQL 代理
这是推荐的方法并且是安全的。下载 Cloud SQL 代理并将其安装到您要连接的计算机上。如果您已设置 Cloud SDK (gcloud),Cloud SQL 代理将使用您的 Cloud SDK 凭据。如果没有,那么您将需要创建并下载一个(通常)具有 Cloud SQL 客户端角色的服务帐户。
您将需要 Cloud SQL 实例详细信息页面中的“实例连接名称”。
[full_path_to_program]\cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306
或者
[full_path_to_program]\cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 -credential_file=[PATH_TO_KEY_FILE]
公共 IP 方法
除非您还启用 SSL,否则第二种方法不安全,我不会在此答案中介绍。除了知识渊博的人,我不推荐这种方法。
弄清楚你的公共 IP 地址是什么。转到任何网站,例如“MXToolbox” https://mxtoolbox.com/whatismyip/
转到 Google 云端控制台
145.11.22.33/32注意:大多数家庭 Internet 服务会定期更改您的公共 IP 地址。这意味着如果您使用第二种方法,则需要在 Cloud SQL 中更新您的公共 IP 地址。