Sé que App Engine tiene su propio almacén de datos. Esto es ideal para la mayoría de los casos y bastante fácil de usar. Sin embargo, tenemos una base de datos MySQL que usamos para varias aplicaciones y no todas están basadas en la Web. Queremos utilizar App Engine por muchos motivos, pero nos gustaría que App Engine acceda a nuestra base de datos MySQL. La documentación que he encontrado no indica claramente si puedo hacer esto o no. ¿Alguien lo ha hecho o tiene indicadores de documentos que muestran cómo hacerlo?¿Puedo usar una base de datos MySQL con una aplicación de App Engine?
Respuesta
La respuesta simple es: NO.
La forma de acceder a su MySQL sería mediante la exposición de una interfaz de servicio web a la misma.
No puede crear una conexión de red directa a su base de datos. El overview page describe las principales restricciones que le impedirían usar Mysql, la principal en este caso son las "conexiones de red arbitrarias". Solo puedes hacer llamadas http desde el motor de la aplicación.
La JVM se ejecuta en una "caja de arena" asegurada ambiente para aislar su aplicación para el servicio y la seguridad. La zona de pruebas garantiza que las aplicaciones solo puedan realizar acciones que no interfieran con con el rendimiento y la escalabilidad de otras aplicaciones. Por ejemplo, una aplicación no puede generar subprocesos, escribir datos en el sistema de archivos local o hacer conexiones de red arbitrarias. Una aplicación tampoco puede usar JNI u otro código nativo . La JVM puede ejecutar cualquier código de bytes Java que opere dentro de las restricciones de la zona de pruebas .
Realmente me gustaría saber cómo esta respuesta merece un voto negativo, especialmente un año después del hecho. –
Esto ya no es cierto. Consulte Google Cloud SQL: https://code.google.com/apis/sql/docs/developers_guide_java.html –
@lukas tenga en cuenta que todavía no puede conectarse a bases de datos MySql externas, como el OP deseado. Está limitado a conectarse a las bases de datos alojadas de App Engine. Además, en este momento no puedes conectarte a tu base de datos alojada en la nube desde fuera de App Engine. –
Google ha anunciado recientemente el apoyo a la nube SQL en GAE - http://googleappengine.blogspot.com/2011/10/google-cloud-sql-your-database-in-cloud.html
Sí, pero no es el normal, mediante la creación de un servicio web o una simple página PHP que actúa como intermedio y pasando los datos en json o xml.
Todavía estoy en la fase de aprendizaje de todo esto, pero estoy bastante seguro de que puede hacer esto ahora algunas de las formas:
- Enlace Aplicaciones scripts para App Engine y utilizar el JDBC y tinta a Google
- tienda su base de datos SQL en Google Cloud Storage
- Conectar Aplicaciones Scripts a través de secuencias de comandos de cálculo
- utilizar su nube SQL
"Google Apps Script tiene la capacidad de realizar conexiones a bases de datos a través de JDBC con el servicio Jdbc. El soporte actual se extiende a MySQL, Microsoft SQL Server y Oracle. Apps Script facilita la conexión a bases de datos alojadas en Google Cloud SQL, pero también funciona con otras plataformas de hospedaje en la nube e incluso con bases de datos locales."https://developers.google.com/apps-script/jdbc
(origionally de App Engine Question)
El uso de un MySQL instancia local durante el desarrollo:.
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>
El uso de la nube
DriverManager.registerDriver(new AppEngineDriver());
c = DriverManager.getConnection("jdbc:google:rdbms://instance_name/guestbook");
gracias por proporcionar el código, este código funciona con la instancia Local MySQL durante el desarrollo Quiero saber si es posible conectar una base de datos mysql externa (no una instancia MySql en la nube) con enging de la aplicación (durante la producción) – Dev
No. Puede usar google cloud sql solamente . Esto es por razones de seguridad (simplemente no le dan acceso a sus servicios web). Pero puede conectar google cloud sql con algún cliente de desctope como mysql workbench para administrar google cloud sql en su mashine – makkasi
gracias por su respuesta @makkasi. – Dev
Sí, se puede
Lea acerca de int https://cloud.google.com/sql/docs
Puede usarlo con cualquier lenguaje compatible con GAE y conectarlo desde fuera de GAE.
- 1. Almacenamiento de datos en una aplicación de Google App Engine
- 2. App Engine y MySQL
- 3. Google App Engine sigue eliminando mi base de datos local
- 4. ¿Para qué puedo usar Google App Engine?
- 5. Almacenar datos en el almacén de datos de App Engine desde una aplicación de Android
- 6. Realización de una conexión OAuth desde una aplicación de Windows a una aplicación Google App Engine
- 7. Cómo crear una aplicación de Google App Engine internacionalizada
- 8. ¿Cómo puedo usar un procedimiento almacenado en una base de datos MySql con Zend Framework?
- 9. Google App Engine buscador/buscador de base de datos?
- 10. Google App Engine Error de aplicación 5
- 11. ¿Es posible usar Google App Engine como base de datos back-end para aplicaciones de Android?
- 12. Eliminación de una aplicación de Google App Engine
- 13. ¿Puedo usar bibliotecas científicas de Java en Google App Engine?
- 14. Cómo puedo crear una imagen dinámicamente en App Engine
- 15. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql
- 16. Migrando fuera de App Engine
- 17. ¿Cómo puedo consultar una base de datos MySQL desde una aplicación de Rails sin modelos?
- 18. ¿Cómo puedo usar Linq con una base de datos MySql en Mono?
- 19. aplicación de registro de Google App Engine
- 20. ¿Cómo usar sbt con Google App Engine?
- 21. ¿Cómo puedo volcar una base de datos MySQL usando hormiga?
- 22. descarga de datos de App Engine
- 23. ¿Cómo puedo mantener segura una base de datos mySQL?
- 24. ¿Cómo elimino una base de datos MySQL?
- 25. Sincronización de base de datos Access en una Distributed App
- 26. ¿Puedo usar ALTER DATABASE para cambiar el nombre de una base de datos mysql?
- 27. Versión de App Engine, Memcache
- 28. Python 2.7 en Google App Engine, no puedo usar lxml.etree
- 29. ¿Se puede usar frameworks Java EE con Google App Engine?
- 30. Migraciones de datos y App Engine
gracias por su respuesta, ¿se refería a los servicios web SOAP y RESTful aquí? – Dev