首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google-App-Engine MySQL数据库未连接

Google-App-Engine MySQL数据库未连接
EN

Stack Overflow用户
提问于 2015-03-21 06:39:52
回答 1查看 264关注 0票数 0

我有一个谷歌应用程序引擎的网站与PHP和一个MySQL实例数据库附加。我有一个数据库连接文件,可以将数据库连接到GAE开发区中的网站,但是当我部署应用程序时,我不知道如何连接它们。我有以下代码,但它不能工作。

代码语言:javascript
复制
<?php
  $host = "unix_socket=/cloudsql/application:instancename";
  $user = "root";
  $password = "password";
  $database = "database";

  $connect = new mysqli($host, $user, $password, $database ); 

  if ($connect->connect_errno) 
  {
    echo "Failed to connect to MySQL: " . $connect->connect_error; 
  }
?>

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-21 10:43:24

让我们按照https://cloud.google.com/appengine/docs/php/cloud-sql/上的指导来做。

我想您已经关注了https://cloud.google.com/appengine/docs/php/cloud-sql/#create,包括通过App Engine应用程序的应用程序ID确认授予对该Cloud SQL实例的访问权限(并且它们位于相同的地理区域,以及c --所有这些都在那里和链接中清楚地详细说明)。

现在,如果您想在App Engine应用程序中使用msqli,请查看该页面上的示例...

代码语言:javascript
复制
$sql = new mysqli(null,
  'root', // username
  '',     // password
  <database-name>,
  null,
  '/cloudsql/<your-project-id>:<your-instance-name>'
  );

看到很多不同之处了吗?第一个参数为null,密码为空字符串,并将云SQL引用作为第六个参数。

或者,如果您已为Cloud SQL实例购买了IP地址,则同一URL上的另一个示例为

代码语言:javascript
复制
$sql = new mysqli('127.0.0.1:3306',
  '<username>',
  '<password>',
  <database-name>
  );

但我认为前一种方法是首选的(并且它为您节省了适度的IP地址费用--不要让示例误导您,要使用的IP地址不是是127.0.0.1,而是您为Cloud SQL实例购买的任何东西:-)。

是的,从本地开发服务器访问MySQL需要与从已部署的appspot.com应用程序访问不同的组合--但我建议您通读我给出的URL处的示例,以了解如何将其转化为优势(当您只是在本地开发时,在开发机器上使用本地MySQL,并为真正部署的应用程序保留实际的Cloud SQL实例--这样,您在本地开发期间可能遇到的bug不会破坏您的实际数据库并导致问题!)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29176895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档