连接问题从PHP App引擎实例连接到在另一个运行Java Runtime的App引擎中创建的Cloud SQL实例

时间:2014-07-03 12:48:30

标签: google-app-engine mysqli google-cloud-sql

我遇到连接到App引擎(Java Runtime)中托管的Cloud SQL实例的问题。连接客户端是托管在另一个Google应用引擎实例中的PHP Web应用程序。 App引擎实例是否可以在另一个实例中连接到Cloud SQL?

基本上,我的设置如下:

  • Google App Engine 1(Java Runtime)
    • 使用Cloud SQL实例安装
    • 托管Google终端并在此实例上连接到Cloud SQL
  • Google App Engine 2(PHP运行时)
    • 连接到Google App Engine 1的云SQL实例的PHP脚本

问题是我总是得到以下错误:

Warning: mysqli_connect(): MySQL server has gone away in /base/data/home/apps/s~some-php-web-app-v1/v1.376456666740733344/includes/database.php on line 29 Warning: mysqli_connect(): Error while reading greeting packet. PID=-1

我相信我的连接代码是正确的

public function connect($server = DBHOST, $username = DBUSER, $password = DBPASS,  $database = DBNAME, $socket = DBSOCKET, $port = DBPORT)
{
    $this->link = mysqli_connect($server, $username, $password, $database, $port, $socket) or die(mysqli_error());
}

常数是:

define('DBHOST', null);
define('DBSOCKET','/cloudsql/some-app-v1-test:some-db');
define('DBNAME', 'database_name');
define('DBUSER', 'root');
define('DBPORT', null);
define('DBPASS', null);
define('PROJECT_PATH', "http:someserver.com//");

这可能吗?如果是,我必须设置什么配置才能使其工作?

谢谢, 斯蒂芬

1 个答案:

答案 0 :(得分:0)

我找到了新手问题的答案。单击您的Cloud SQL控制台上的编辑,然后在"授权的App Engine应用程序"下添加您的Google应用实例ID。部分。