这是我用于连接数据库的PHP代码,这是MySQL的Cloud SQL实例:
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上授权了Web服务器的IP地址,但是返回的只是一个Connection Timed Out
错误;我该怎么做才能解决此问题?
我确信凭据正确无误,并且可以通过其他授权IP地址进行连接,因为我已经能够通过MySQL工作台从另一个帐户和多个IP地址进行访问。
答案 0 :(得分:0)
已解决:
对于使用Siteground服务的任何人,如果您使用公共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。