我刚刚开始使用Quercus使用php进行Google App Engine。
我不会将我的完整应用程序移动到应用程序引擎,但我正在考虑通过应用程序引擎提供一些小部件和API。 同时,我将在mysql中维护我的数据库,因为我已经在一个单独的服务器上运行了。
我针对我的数据库制作了各种不同形状的数据请求。在lat / longs中按日期获取,用户等获取等等。
我怀疑的大多数widget和api请求将继续用于相同的300-400查询。 我认为将所有数据移到app引擎并最终将数据存储在两个地方是不合理的。
我希望我可以通过php向外部mysql服务器提出查询,但显然这不起作用。尝试连接时出现以下错误
Warning: A link to the server could not be established. url=jdbc:mysql://localhost:3306/。我认为这意味着app引擎无法连接到mysql,因为应用程序引擎设置,而不是由于我做错了什么具体。 我已检查mysql是否在端口3306上运行。
假设问题是App Engine无法连接到mysql(甚至是外部mysql数据库),我认为我的另一个选择是在json中检索数据并将其存储在app engine memcache中,或直接在数据存储区中作为完整的json对象,然后散列查询以用作检索数据的密钥。
我希望得到一些建议,如果这是在AppEngine上管理数据的正确方法(或者我认为是一种好方法),或者我应该关注另一种解决方案。
我有点惊讶的是app引擎无法向外部关系数据库发出请求,因为我认为响应是作为对象检索的,并且'关系'不存在于mysql之外。
答案 0 :(得分:2)
您无法在App Engine上建立套接字连接 - 仅限HTTP请求。您最好的选择是将相关数据镜像到App Engine,或让您的旧应用程序提供公开相关数据的API,并从App Engine应用程序中调用它。
答案 1 :(得分:1)
嗯,有一件事是肯定的:忘掉AppEngine上的MySQL。
数据存储可能是最快的,因为它集成在平台中。如果您愿意,您当然可以使用HTTP接口连接到外部数据库...