gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 12:19:58 25 4
gpt4 key购买 nike

我有一个带有 PHP 和 MySQL 实例数据库的 Google App Engine 网站。我有一个数据库连接文件,我可以将数据库连接到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;
}
?>

有什么想法吗?

最佳答案

让我们按照 https://cloud.google.com/appengine/docs/php/cloud-sql/ 中的指导进行操作...

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

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

$sql = new mysqli(null,
'root', // username
'', // password
<database-name>,
null,
'/cloudsql/<your-project-id>:<your-instance-name>'
);

看到许多差异了吗?第一个参数为 null,密码为空字符串,Cloud SQL 引用作为第六个参数。

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

$sql = new mysqli('127.0.0.1:3306',
'<username>',
'<password>',
<database-name>
);

但我认为前一种方法是首选(并且它可以为您节省 IP 地址的适度费用 - 不要让这个示例误导您,要使用的 IP 地址不是是 127.0 .0.1,但无论您为 Cloud SQL 实例购买什么:-)。

是的,从本地开发服务器访问 MySQL 需要与从部署的 appspot.com 应用程序访问 MySQL 不同的组合 - 但我建议您仔细阅读我给出的 URL 中的示例,了解如何实现这一点对您有利(当您只是在本地开发时,在开发计算机上使用本地 MySQL,并为真正部署的应用程序保留实际的 Cloud SQL 实例 - 这样,您在本地开发期间可能遇到的错误不会破坏您的真实数据库并引起问题!-)

关于php - Google-App-Engine MySQL 数据库未连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com