以下是我用于连接数据库(MySQL 的 Cloud SQL 实例)的 PHP 代码:
define('DB_SERVER', '192.0.0.1');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_NAME', 'db');
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME) or die(mysqli_connect_error());
显然,DB_SERVER
不是实际的 IP 地址,也不是凭据,但我确实输入了一个虚拟地址,看看是否需要添加类似 cloudsql:/
或 jdbc://
就像在 Java 中一样。
我确实在 Cloud SQL 上授权了网络服务器的 IP 地址,但它返回的只是连接超时
错误;我可以做什么来解决这个问题?
我确信凭据是正确的,并且我可以从其他授权的 IP 地址进行连接,因为我已经能够通过 MySQL 工作台从另一个帐户和多个 IP 地址进行访问。
最佳答案
已解决:
对于使用 Siteground 服务的任何人,如果您使用公共(public) IP 授权,请务必添加 0.0.0.0/0 作为接受的 IP 地址。然后在刷新 php 页面时,通过在刷新页面后立即运行以下命令来查找连接的 IP:
SELECT host FROM information_schema.processlist WHERE ID=connection_id();
它应该为您提供多个 IP,并使用 IP 定位器在线检查它们,看看它们是否与 Siteground 服务的位置匹配。删除 0.0.0.0/0 并将该 IP 地址添加到 Google Cloud SQL。
关于PHP 连接到 Cloud SQL 实例超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56891807/