【问题标题】:Need help connecting my App Engine PHP with my Google Cloud SQL Database需要帮助将我的 App Engine PHP 与我的 Google Cloud SQL 数据库连接起来
【发布时间】:2014-03-16 03:41:33
【问题描述】:

下面是我的 php 脚本尝试连接到我的 Google SQL 云数据库时的 sql 连接代码

<?php

$con=mysqli_connect(":/cloudsql/projectID:google-cloud-instance","root","root","DATABASE");
// Check connection
if (mysqli_connect_errno())
{
echo "Oops! Something Must Have Went Wrong?: " . mysqli_connect_error()
;`

但是当我处理整个 php 脚本时,我收到以下错误:

"php_network_getaddresses: gethostbyname failed. errno=0Error:"

我是这方面的初学者,所以如果有人可以帮助我..

  1. 了解这意味着什么
  2. 我该如何解决?

提前感谢您的帮助!

【问题讨论】:

    标签: php mysql sql sql-server google-app-engine


    【解决方案1】:

    您需要将云 SQL 实例名称作为“socket”参数传递给 MySQLi constructor。例如

    $instance_name = ":/cloudsql/projectID:google-cloud-instance";
    $c = new mysqli(null, $username, $password, $database, 0, $instance_name);
    

    如果您使用默认身份验证(应用程序级别身份验证),那么您可以通过 root 并且无需密码进行连接。

    $instance_name = ":/cloudsql/projectID:google-cloud-instance";
    $c = new mysqli(null, "root", "", $database, 0, $instance_name);
    

    【讨论】:

      【解决方案2】:

      https://developers.google.com/appengine/docs/php/cloud-sql/#PHP_Connecting_to_your_Cloud_SQL_instance。似乎您正在混合使用 mysqli 和 mysql_connect 语法。选择一个并按照文档中的示例进行操作。

      【讨论】:

      • 感谢您的快速响应,但是,我已尝试更改此设置,但仍然出错。不确定您是否有一些您可能试图说明的代码示例?
      【解决方案3】:

      对于 CloudSQL,建议您使用 unix 套接字。

      如果你使用mysqli_connect,你可以在php.ini中指定默认的socket。

      php.ini mysqli.default_socket= '/cloudsql/CONNECTION_NAME'

      $db = mysqli_connect('localhost', 'USER', 'PASSWORD', 'DB');

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-05
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 2017-08-08
        相关资源
        最近更新 更多