mysqli可以在本地计算机上正常运行,但不能在Google App Engine上运行,这是怎么回事?

时间:2018-08-14 09:55:36

标签: php mysqli google-cloud-platform app-engine-flexible google-app-engine-php

我正在尝试编写一个简单的纯PHP页面,该页面使用mysqli连接到Cloud SQL。当我打开Cloud SQL代理时,它在我的本地计算机上运行良好。但!它不适用于Google App Engine。我尝试过:

  • 将127.0.0.1更改为Cloud SQL实例详细信息中所述的公共IP地址
  • 添加端口(3306)和数据库套接字(/cloudsql/<cloud_sql_instance_name>

    $servername = "127.0.0.1";
    $username = "test";
    $password = "test";
    $dbname = "testdb";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname); 
    
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    echo "\nConnected successfully\n";
    

某个地方有什么错误吗?

1 个答案:

答案 0 :(得分:0)

Google App Engine与常规VM不同。

代理与主应用程序容器一起部署,并具有一些非常具体的方式来运行连接。尝试按原样使用GAE内的代理始终会失败。

要使其正常运行,必须遵循所使用环境的特定文档上的说明:

注意如何在两个实例上直接连接到Unix套接字,而不是实例/代理IP。