【发布时间】: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