这篇文章主要围绕在JavaAppengine开发期间使用GoogleCloudSQL和而不是本地MySQL实例展开,旨在为您提供一份详细的参考资料。我们将全面介绍在JavaAppengine开发期间使
这篇文章主要围绕在Java Appengine开发期间使用Google Cloud SQL和而不是本地MySQL实例展开,旨在为您提供一份详细的参考资料。我们将全面介绍在Java Appengine开发期间使用Google Cloud SQL的优缺点,解答而不是本地MySQL实例的相关问题,同时也会为您带来App Engine Java Servlet无法连接到Cloud SQL、Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API、Google App Engine的Google Cloud SQL(第2代)出现“请求TLS但服务器不支持TLS”错误?、Google AppEngine开始Java支持测试的实用方法。
本文目录一览:- 在Java Appengine开发期间使用Google Cloud SQL(而不是本地MySQL实例)
- App Engine Java Servlet无法连接到Cloud SQL
- Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API
- Google App Engine的Google Cloud SQL(第2代)出现“请求TLS但服务器不支持TLS”错误?
- Google AppEngine开始Java支持测试
在Java Appengine开发期间使用Google Cloud SQL(而不是本地MySQL实例)
我(有时)不希望在Java Appengine开发期间使用本地MySQL实例,而希望使用真实的Google Cloud
SQL实例(例如,使用真实的东西进行调试)。
可以从IntelliJ =>数据库打开JDBC连接,但是当我在Maven
POM中使用此URL时,它无法正常工作…在这种情况下,我已经在使用appengine驱动程序而不是本地mysql连接器。
为什么这不起作用?我应该如何配置我的POM?使用本地MySQL实例时,我使用以下配置;
<extraJvmArgs> -Xmx512M -Xms512M -XX:MaxPermSize=128M \ -Dappengine.user.timezone.impl=UTC \ -Drdbms.server=local \ -Drdbms.driver=com.mysql.jdbc.Driver \ -Drdbms.url=jdbc:mysql://localhost:3306/mydb?user=root</extraJvmArgs>
和我无法使用的Google Cloud SQL实例尝试;
<extraJvmArgs> -Xmx512M -Xms512M -XX:MaxPermSize=128M \ -Dappengine.user.timezone.impl=UTC \ -Drdbms.server=local \ -Drdbms.driver=com.mysql.jdbc.Driver \ -Drdbms.url=jdbc:google:rdbms://domain.com:myportal:myportal/mydb?user=root</extraJvmArgs>
要么
<extraJvmArgs> -Xmx512M -Xms512M -XX:MaxPermSize=128M \ -Dappengine.user.timezone.impl=UTC \ -Drdbms.server=local \ -Drdbms.driver=com.google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver \ -Drdbms.url=jdbc:google:rdbms://domain.com:myportal:myportal/mydb?user=root</extraJvmArgs>
我所有的(远程)尝试都导致连接超时…
答案1
小编典典不建议使用’jdbc:google:rdbms’的连接方式,从外部应用程序连接到Cloud
SQL的首选方法是通过’jdbc:mysql’(docs)使用IP连接。
App Engine Java Servlet无法连接到Cloud SQL
我已经使用应用引擎创建了一个Java Web
Servlet,该Servlet向数据库发出了请求。我已经使用本地数据库在本地测试了servlet,并且运行良好,然后继续在本地测试了servlet,但是我访问了Cloud
SQL数据库,但是也运行得很好。
我部署servlet后出现了我的问题。部署后,所有数据库请求都将返回以下内容:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not
received any packets from the server.
我在云控制台中进行了检查,并且我的应用已正确添加到访问控制选项卡下的云SQL授权的App Engine应用中。
是否有人在部署的应用程序引擎servlet中遇到类似的问题?有解决方案或建议吗?我将不胜感激!
更新:
上面的错误是使用以下代码访问数据库生成的
Class.forName("com.mysql.jdbc.Driver");
Url = "jdbc:mysql://<ip-address-cloudsql>:3306/<dbname>";
Connection con = DriverManager.getConnection (Url,"root",<password>);
使用此代码也可以得到相同的错误,请注意,它与此处示例中显示的代码非常相似https://developers.google.com/appengine/docs/java/cloud-
sql/
Class.forName("com.mysql.jdbc.GoogleDriver");
Url = "jdbc:google:mysql://<appID:instanceID>/<dbname>?
user=root&password=<password>";
Connection con = DriverManager.getConnection (Url);
当我使用appid和实例ID设置url时,我遵循了这个stackoverflow帖子中显示的格式设置技巧:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
使用此代码会导致以下不同的错误:
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
我假设它说的是localhost,因为我的cloudsql数据库设置为遵循应用引擎servlet。另外,请知道当在本地运行servlet并访问cloud
sql数据库时,这两种方法都可以正常工作。
有什么想法吗?我不知道还能尝试什么:[
Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API
如何解决Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API?
不知道是否可以直接从应用程序停止和启动一个 Flex Google App 版本的版本?
不是由 gcloud 客户端...
显然它是通过 gcloud 命令工作的:gcloud app versions stop/start <version>
...就像在 Google Web 界面中一样...
我查看了按钮启动/停止运行良好的 Google Web 服务。请求被传递到 url :
https://console.cloud.google.com/m/operations?operationType=cloud-console.appengine.stopStartVersions&pid=<PROJECT-NAME>&hl=fr
有了这个数据:
{"pid":"<PROJECT-NAME>","serviceId":"<SERVICE-ID>","versionId":"<VERSION-ID>","serving":true,"descriptionLocalizationKey":"gaeStopStartVersions","descriptionLocalizationArgs":{"serving":"true","versionId":"<VERSION-ID>"}}
...但通过 Python API
我尝试遵循有关修补版本的文档。此代码或示例:
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
appengine = discovery.build(''appengine'',''v1'',credentials=credentials)
apps = appengine.apps()
apps.services().versions().patch(appsId=''<ID-APP>'',servicesId=''<ID-SERVICE>'',versionsId="<ID-VERSION>",body = {''servingStatus'': ''STOPPED''},updateMask=''servingStatus'').execute()
这是有效的。版本停止和实例关闭。但是,当我对 SERVING
执行相同操作时,版本会打开,但不会创建实例。
有人已经成功地做到了这一点吗?
预先感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Google App Engine的Google Cloud SQL(第2代)出现“请求TLS但服务器不支持TLS”错误?
在尝试连接到 Google Cloud SQL 生成一个实例时,重新使用我的连接字符串(在这里解决… 无法使用SSL +Golang从Google App Engine连接到Google Cloud SQL )时遇到问题连接到第二代实例。我收到此错误:TLS requested but server does not
support TLS
我不知道如何解决这个问题, 而且文档非常稀缺。
我发现了第二Instance connection name
代遵循不同结构的事实,但这似乎并不是问题所在。有人解决了吗?我正在从Golang连接。
Google AppEngine开始Java支持测试
"一开始Google就表示Google App Engine会支持更多的语言,经过一年的等待,今天终于在Google App Engine的主页上出现了对Java的支持,想用GAE玩Java的赶紧,有人数限制(前10,000名)。"
bennycompile 写道 "您能使用标准的java技术建立web应用程序放在一个高扩展的google框架中,该运行环境提供java 6的JVM,Servelet接口,还支持Appengine的Datastore接口和服务,如JDO,JPA,JavaMail和JCache,标准 化可以使你的开发更加轻易和便捷,而且可以把你的servelet环境直接移植上去。
关于在Java Appengine开发期间使用Google Cloud SQL和而不是本地MySQL实例的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于App Engine Java Servlet无法连接到Cloud SQL、Google App Engine - 从 Python API 启动/停止 Flex 实例 不是由 gcloud 客户端......就像在 Google Web 界面中一样......但通过 Python API、Google App Engine的Google Cloud SQL(第2代)出现“请求TLS但服务器不支持TLS”错误?、Google AppEngine开始Java支持测试的相关信息,请在本站寻找。
本文标签: