我知道App Engine有自己的數據存儲區。這對大多數情況非常有用,而且使用相當簡單。但是,我們有一個MySQL數據庫,我們用於多個應用程序,而不是所有的都是基於Web的。我們想要使用App Engine的原因很多,但希望App Engine應用程序訪問我們的MySQL數據庫。我發現的文檔沒有清楚地說明我是否可以做到這一點。有沒有人完成它或有指示文件顯示如何做到這一點?我可以在App Engine應用程序中使用MySQL數據庫嗎
回答
簡單的答案是:NO。
訪問你的MySQL的方式是通過暴露一個Web服務接口。
您無法創建與數據庫的直接網絡連接。 overview page概述了阻止您使用Mysql的主要限制 - 在這種情況下主要的限制是「任意網絡連接」。您只能從應用程序引擎中調用http(s)調用。
JVM上運行在一個安全的「沙箱」 環境隔離的服務和保障您的 應用。 沙箱確保應用程序只能執行 的操作,而不會干擾其他應用程序的性能和可伸縮性 。例如,應用程序 不能產生線程,將數據寫入 本地文件系統或使 任意網絡連接。應用程序 也不能使用JNI或其他本地 代碼。 JVM可以執行任何在 沙箱限制內運行的Java 字節碼。
我真的很想知道這個答案值得贊成,特別是在事實發生一年後。 – 2010-11-03 17:58:35
這不是真的了。查看Google Cloud SQL:https://code.google.com/apis/sql/docs/developers_guide_java.html – 2011-10-22 14:06:16
@lukas請注意,您仍然無法連接到外部MySql數據庫,如OP所需。您僅限於連接到App Engine託管的mysql數據庫。另外,目前您無法從App Engine外部連接到您的雲託管數據庫。 – 2011-10-22 18:31:56
是的,但不是正常的,通過創建Web服務或充當一個簡單的PHP頁面作爲中間數據並以json或xml傳遞數據。
我仍然在這一切的學習階段,但我相當肯定,你可以做到這一點,現在的一些方法:
- 鏈接Apps腳本到App Engine和使用JDBC和墨水它谷歌
- 商店通過電子表格的腳本
- 連接Google Apps腳本在谷歌雲存儲中的SQL數據庫使用其雲SQL
「Google Apps腳本可以通過JDBC與Jdbc服務建立數據庫連接。目前的支持擴展到MySQL,Microsoft SQL Server和Oracle。 Apps Script可以輕鬆連接到Google Cloud SQL上託管的數據庫,但也可以與其他雲託管平臺甚至本地數據庫一起使用。「https://developers.google.com/apps-script/jdbc
(origionally從App Engine Question)
使用本地MySQL實例發展過程中。
import com.google.appengine.api.rdbms.AppEngineDriver; public static void makeConnection() { try { if (conn == null || !conn.isValid(0)) { String url = "localhost/databasename"; String username = "root"; String password = "password"; DriverManager.registerDriver(new AppEngineDriver()); String urlForConnection = "jdbc:mysql://" + url; conn = DriverManager.getConnection(urlForConnection, username, password); } } catch (SQLException e) { e.printStackTrace(); } } // in web.xml <filter> <filter-name>_ah_DevSocketFilter</filter-name> <filter-class>com.google.appengine.api.socket.dev.DevSocketFilter</filter-class> <init-param> <param-name>use-native-sockets</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>_ah_DevSocketFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
使用雲
DriverManager.registerDriver(new AppEngineDriver());
c = DriverManager.getConnection("jdbc:google:rdbms://instance_name/guestbook");
- 1. 我可以在Google App Engine應用程序中使用facelets嗎?
- 2. 我們可以使用AsyncHttpClient在谷歌App Engine應用程序
- 3. 我可以從App Engine使用cron嗎?
- 4. 使用App Engine更新應用程序中的數據庫
- 5. 在Android應用程序中可以使用Neo4j數據庫嗎?
- 6. 我可以在Google App Engine上使用免費的雲端數據庫嗎?
- 7. 我可以在Google App Engine上更改Node.js應用程序的實例類嗎?
- 8. 我可以在Google App Engine中使用JavaCompiler嗎?
- 9. 我可以在Google App Engine模塊中使用TensorFlow嗎?
- 10. 我可以在Google App Engine中使用TA-Lib嗎?
- 11. 我可以在Google App Engine中使用JPA 2.0嗎?
- 12. 我可以在Google App Engine中使用Django的郵件API嗎?
- 13. 我可以在Android應用程序中使用FFmpeg的庫嗎?
- 14. 我們可以在iOS應用程序中使用gSOAP庫嗎?
- 15. 我可以在後端應用程序中使用JQuery庫嗎?
- 16. 我可以使用RealBasic編寫Mac App Store應用程序嗎?
- 17. 是否可以在Google App Engine中使用Go供應商庫?
- 18. 我們可以使用Google App Engine而不使用他們的數據API嗎?
- 19. 可以在Google App Engine上使用Python請求庫嗎?
- 20. Sinatra應用程序可以使用2個數據庫嗎?
- 21. 我可以將運行時屬性添加到Python App Engine應用程序嗎?
- 22. 我可以將Jodd框架應用程序部署到Google App Engine嗎?
- 23. 我可以通過我的應用程序使用SharePoint 2010 SQL數據庫嗎?
- 24. Google App Engine可用於驅動桌面應用程序嗎?
- 25. 我可以在Google App Engine上使用Django模板標籤嗎?
- 26. 我需要在應用程序中使用Oracle數據庫嗎?
- 27. 我可以將hibernate用於數據中心應用程序嗎?
- 28. 我可以在我的iPhone應用程序中使用ASIHTTPRequest嗎?
- 29. 我可以在我的應用程序中使用minimob advertise嗎?
- 30. 我可以在我的應用程序中使用notepad ++ exe嗎?
感謝您的回答,您的意思是SOAP和RESTful Web服務嗎? – Dev 2014-06-27 06:20:33