我有一个谷歌应用程序引擎的网站与PHP和一个MySQL实例数据库附加。我有一个数据库连接文件,可以将数据库连接到GAE开发区中的网站,但是当我部署应用程序时,我不知道如何连接它们。我有以下代码,但它不能工作。
<?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;
}
?>有什么想法吗?
发布于 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,请查看该页面上的示例...
$sql = new mysqli(null,
'root', // username
'', // password
<database-name>,
null,
'/cloudsql/<your-project-id>:<your-instance-name>'
);看到很多不同之处了吗?第一个参数为null,密码为空字符串,并将云SQL引用作为第六个参数。
或者,如果您已为Cloud SQL实例购买了IP地址,则同一URL上的另一个示例为
$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不会破坏您的实际数据库并导致问题!)
https://stackoverflow.com/questions/29176895
复制相似问题