Как подключить код MySQLdb к облачному Google SQL? - PullRequest
0 голосов
/ 02 июня 2019

У меня есть флеш-сервер, который я хочу развернуть на Google Cloud Platform.Код использует библиотеку MySQLdb для соединения с локальным экземпляром MySQL следующим образом:

@app.route('/show_table', methods=['POST'])
def login():
    db = MySQLdb.connect("localhost", "root", "", "db_name")
    cursor = db.cursor()
    query = "select * from table_name;"
    cursor.execute(query)
    res = cursor.fetchall()
    return res, 200

Но вместо локального экземпляра MySQL я хочу подключить этот код к Cloud SQL, чтобы он считывал данные из облака.Какие изменения я должен внести в этот код?В настоящее время я создал проект в Google Cloud Platform и экземпляр Cloud SQL внутри этого проекта.Я также создал необходимые таблицы внутри этого экземпляра, следуя этому учебнику.

1 Ответ

2 голосов
/ 03 июня 2019

Вам не нужно слишком сильно менять свой код, это зависит только от того, как вы собираетесь подключаться к базе данных. Документация Google содержит пошаговую информацию о том, как подключиться к Cloud SQL из внешнего приложения.

Поскольку вы не используете Java или GO, есть два варианта:

  1. Использовать облачный SQL-прокси
  2. Белый список публичных IP-адресов вашего сервера на странице экземпляра Cloud SQL

Все шаги приведены в документации, но в основном говорится, что если вы используете прокси-сервер, вам необходимо включить API-интерфейс Cloud SQL Admin, установить прокси-клиент на локальном компьютере и аутентифицировать его. Есть несколько опций аутентификации , но рекомендуемый способ - создание файла учетных данных из учетной записи службы с использованием консоли и передача файла в качестве параметра при первом запуске прокси-сервера. Когда у вас есть прокси, работающий , в документации есть примеры того, как подключить с использованием сокетов TCP или UNIX. С TCP вы будете использовать прокси в качестве локального хоста, поэтому вам не придется менять свой код. Используя сокеты UNIX, вы будете использовать имя соединения экземпляра, которое вы найдете в подробностях вашего экземпляра на консоли GCP. MySQLdb поддерживает оба.

С помощью второй опции вам необходимо разрешить доступ к вашему экземпляру Cloud SQL из определенного диапазона IP-адресов. Перейдите на вкладку соединений на странице сведений об экземпляре Cloud SQL и добавьте IP-адрес (с использованием нотации CIDR), который вы хотите использовать для подключения к вашей базе данных. После внесения в белый список вы можете использовать Public IP вашего экземпляра Cloud SQL, который вы найдете в подробностях экземпляра, вместо localhost для подключения к вашей базе данных.

...