【发布时间】:2015-12-18 17:30:06
【问题描述】:
我一直在尝试连接到在 Google App Engine 到 Google Cloud SQL. 中运行的示例 PHP hello world 应用程序
我正在尝试测试示例数据库连接。使用像Navicat 这样的外部客户端我可以获得访问权限,但是,将应用程序直接连接到云 sql 不起作用。
我已经查看了许多 * 类似的问题,并彻底研究了 google 提供的示例,但没有运气。
在这里,您可以看到 hello world 文件,其中包含三个不同尝试连接到 sql db 的输出,我也在回显每个对象的 json ......它返回为空或 null。
https://beaming-glyph-107521.appspot.com/
我不知道这里还能做什么
我的 Google 应用可以访问 Cloud SQL 实例:
我现在我的用户 sql 用户是 root 并且密码为空,但我也尝试了一个具有已定义密码的用户 - 仍然没有运气。
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
echo 'Hello, world!';
//Copied and Pasted straight from the provided connection strings in Cloud SQL
// Using PDO_MySQL (connecting from App Engine)
$db = new pdo('mysql:unix_socket=/cloudsql/beaming-glyph-107521:testdb',
'root', // username
'' // password
);
// Using mysqli (connecting from App Engine)
$sql = new mysqli(
null, // host
'root', // username
'', // password
'', // database name
null,
'/cloudsql/beaming-glyph-107521:testdb'
);
// Using MySQL API (connecting from App Engine)
$conn = mysql_connect(':/cloudsql/beaming-glyph-107521:testdb',
'root', // username
'' // password
);
echo "<br><br/>pdo connection: ".json_encode($db);
echo'<br><br/> msqli connection: '.json_encode($sql);
echo '<br><br/> mysql conn: '.json_encode($conn);
【问题讨论】:
-
听起来您需要在开发人员控制台中设置访问令牌。有关说明,请参见此处:developers.google.com/identity/protocols/OAuth2ServiceAccount
-
感谢 Joshua 的回复,您可能是正确的,但在任何地方都没有提及访问令牌。这是连接 GAE 和 GCSQL 的官方文档的链接,列出了分步说明,但未提供访问令牌 goo.gl/BExXCz。此外,我认为当您“授权”应用程序时,该授权将取代通常由访问令牌提供的任何授权。
-
很高兴你知道了。
标签: php google-app-engine google-cloud-platform google-cloud-sql