【问题标题】:PHP 5.2 based app unable to connect to Google Cloud SQL基于 PHP 5.2 的应用程序无法连接到 Google Cloud SQL
【发布时间】:2015-01-13 14:02:05
【问题描述】:

我们有一个基于 PHP 5.2 的应用程序,我们迁移到 GCE,遇到了 Mysqli 客户端无法工作的问题。

我们使用 Atomic Archive repo 在 GCE 6 CentOS 6 上安装 PHP 5.2: http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/

并且还安装了提供的 Mysql 客户端: mysql-5.5.40-26.el6.art.x86_64.rpm

在测试之后,应用程序失败并出现以下错误: 警告:mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on XXX.XXX.XXX.XXX

虽然命令行 mysql 客户端工作正常。

在查看 mysqli.so PHP 扩展时,我们注意到它使用了最古老的可用 MySQL 库:/usr/lib64/mysql/libmysqlclient.so.16

这个库是否有可能不适用于 Google Cloud SQL?

【问题讨论】:

  • 您是否有机会指定定义者?或者以超级权限运行您的应用程序?如果是这样,Google Cloud SQL 不支持 SUPER 权限。您的 GCE IP 地址在 Cloud SQL 上的授权网络中吗?
  • 这是一个基于 Drupal 的应用程序,它只获得标准的 CRUD 权限。 GCE 是指公共地址还是内部地址?也就是说,请注意命令行mysql客户端确实连接正常。
  • 连接 URL 看起来相当标准:$db_url = 'mysqli://USER:PASS@XXX.XXX.XXX.XXX/DB';

标签: mysql google-compute-engine google-cloud-sql php-5.2


【解决方案1】:

这就是我从我的 php 连接的方式:

$conn = mysqli_connect("<IP>", "<username>", "<password>","database") or die ("Error" . mysqli_error($conn));

【讨论】:

  • 您使用的 PHP 版本是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-25
  • 2014-01-28
  • 1970-01-01
相关资源
最近更新 更多