【问题标题】:PHP times out connecting to Cloud SQL instancePHP 连接到 Cloud SQL 实例超时
【发布时间】:2019-07-04 16:40:15
【问题描述】:

这是我用于连接数据库的 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 地址,也不是凭据,但我确实放入了一个虚拟地址,以查看是否需要像在 Java 中那样添加 cloudsql:/jdbc:// 之类的东西。

我确实为 Cloud SQL 上的网络服务器授权了 IP 地址,但它返回的只是 Connection Timed Out 错误;我该怎么做才能解决这个问题?

我确定凭据是正确的,并且我可以从其他授权 IP 地址进行连接,因为我已经能够通过 MySQL 工作台从另一个帐户和多个 IP 地址进行访问。

【问题讨论】:

  • 你能从mysql终端远程连接到服务器吗? mysql -u username -h 192.0.0.1 -ppassword -D db -P {YOUR SERVER PORT} ?
  • @Karlom 它只是通过谷歌云终端挂起。我也跑了mysql -h 192.0.0.1:3306 -u user -p db,只是有点挂了。奇怪的是,MySQL Workbench 对我来说很好用。
  • 你是如何代理你的 Cloud SQL 的?
  • @LeKhiem 我没有使用代理,我使用公网IP连接SQL数据库。

标签: php mysql google-cloud-platform web-hosting


【解决方案1】:

已解决:

对于使用 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。

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 2018-05-25
    • 2021-11-30
    • 1970-01-01
    • 2020-07-01
    • 2022-07-26
    • 2020-09-16
    • 1970-01-01
    相关资源
    最近更新 更多