Voj*_*ane 1 google-app-engine google-cloud-sql
我刚刚开始使用谷歌应用程序引擎。我正在用 php 开发一个应用程序。如果我想看到结果,我使用了
dev_appserver.py ./ --php_executable_path /usr/bin/php5-cgi
(对我来说,如果没有 --php_executable_path 参数,它就无法工作)
它工作正常,但我无法连接到云 sql 实例。我阅读了此https://cloud.google.com/appengine/docs/php/cloud-sql并尝试通过以下方式连接到云 sql:
$sql = 新的 mysqli(null, 'root', // 用户名 '', // 密码 , 无效的, '/cloudsql/:' );
如果我将某些内容部署到 appengine,这是可行的,但是如果我需要在本地调试应用程序并且它取决于数据库,我应该做什么?
@DTing 的答案是正确的,Google 的文档鼓励您使用本地开发服务器中的本地 MySQL 并推荐该模式。
但是,如果您不同意并希望针对云中的“生产”SQL 运行开发服务器,那么这也是受支持的(只是不鼓励,因为开发期间的错误可能会破坏您的生产数据!)。
具体来说,您可以按照https://cloud.google.com/sql/docs/getting-started#work上的一般说明进行操作(忽略 appengine 特定部分):确保您的 Cloud SQL 实例具有IP 地址,启用工作站的外部可见IP 地址,确保 SQL 实例有 root 密码——然后检查一切是否与命令行 MySQL 客户端一起工作,例如
[[注意:要验证工作站的外部可见IP 地址,请使用浏览器访问http://checkmyip.com/等网站]]
$ mysql --host=INSTANCE_IP --user=root --password
Run Code Online (Sandbox Code Playgroud)
一旦一切设置正确,您只需按照https://cloud.google.com/appengine/docs/php/cloud-sql/#PHP_Using_a_local_MySQL_instance_during_development中的说明进行操作:
要从开发环境连接到 Cloud SQL 实例,请将“127.0.0.1”替换为实例 IP 地址。如果您的 App Engine 应用在开发服务器中本地运行,则不要使用基于“/cloudsql/”的连接字符串连接到 Cloud SQL 实例。
如果您想在本地使用相同的代码并进行部署,您可以使用特殊的 $_SERVER 键变量 (SERVER_SOFTWARE) 来确定代码的运行位置。这种方法如下所示。
例如,如果您的 Cloud SQL 的 IP 地址是 12.34.56.78,您可以使用
$sql = new mysqli('12.34.56.78:3306',
'<username>',
'<password>',
<database-name>
);
Run Code Online (Sandbox Code Playgroud)
when$_SERVER['SERVER_SOFTWARE']未设置或不包含Google App Engine(这意味着您正在本地开发服务器上运行)。
| 归档时间: |
|
| 查看次数: |
8423 次 |
| 最近记录: |