Могу ли я использовать базу данных MySQL с приложением App Engine - PullRequest
26 голосов
/ 30 октября 2009

Я знаю, что у App Engine есть собственное хранилище данных. Это отлично подходит для большинства случаев и довольно прост в использовании. Однако у нас есть база данных MySQL, которую мы используем для нескольких приложений, и не все из них основаны на Web. Мы хотим использовать App Engine по многим причинам, но хотели бы, чтобы приложение App Engine получало доступ к нашей базе данных MySQL. Документация, которую я нашел, не ясно указывает, могу ли я сделать это или нет. Кто-нибудь сделал это или есть указатели на документы, которые показывают, как это сделать?

Ответы [ 8 ]

23 голосов
/ 11 октября 2011

Google недавно объявил о поддержке Cloud SQL в GAE - http://googleappengine.blogspot.com/2011/10/google-cloud-sql-your-database-in-cloud.html

19 голосов
/ 19 ноября 2009

Вы не можете создать прямое сетевое соединение с вашей базой данных. На странице обзора изложены основные ограничения, которые могут помешать вам использовать Mysql - основными в данном случае являются «произвольные сетевые подключения». Вы можете делать вызовы http (s) только из движка приложения.

JVM работает в защищенной «песочнице» среда, чтобы изолировать ваш приложение для обслуживания и безопасности. Песочница гарантирует, что приложения могут только выполнять действия, которые не мешают с производительностью и масштабируемостью других приложений. Например, приложение не может порождать потоки, записывать данные в локальная файловая система или сделать произвольные сетевые подключения. Приложение также не может использовать JNI или другой нативный код. JVM может выполнять любую Java байт-код, который работает в ограничения песочницы.

9 голосов
/ 30 октября 2009

Простой ответ: НЕТ.

Чтобы получить доступ к вашему MySQL, нужно открыть интерфейс веб-службы.

3 голосов
/ 04 апреля 2013

Использование локального экземпляра MySQL во время разработки:

 </p>

<pre><code> 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");

3 голосов
/ 21 июня 2010

Посмотрите на SDC (Secure Data Connector) .

И тот же вопрос

App Engine и MySQL

1 голос
/ 07 января 2012

Да, но не нормально, создав веб-сервис или простую страницу php, которая выступает в качестве промежуточного звена, и передавая данные в формате json или xml.

0 голосов
/ 27 октября 2014

Да, вы можете.

Читать о int https://cloud.google.com/sql/docs

Вы можете использовать его с любым языком, поддерживаемым GAE, и подключаться к нему также за пределами GAE.

0 голосов
/ 13 декабря 2012

Я все еще на стадии изучения всего этого, но я вполне уверен, что вы можете сделать это сейчас несколькими способами:

  • Свяжите скрипты приложений с App Engine, используйте JDBC и перетащите его в Google
  • Храните базу данных SQL в облачном хранилище Google
  • Подключение скриптов приложений с помощью сценариев электронных таблиц
  • Используйте свой облачный SQL

"Google Apps Script имеет возможность устанавливать соединения с базами данных через JDBC с помощью службы Jdbc. Текущая поддержка распространяется на MySQL, Microsoft SQL Server и Oracle. Apps Script позволяет легко подключаться к базам данных, размещенным в Google Cloud SQL, но также работает с другими платформами облачного хостинга и даже локальными базами данных. " https://developers.google.com/apps-script/jdbc

(первоначально от Вопрос о App Engine )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...