3

Google Compute Engine で Django サイトを構築しており、データベースを SQL Cloud にインストールしたいと考えています。可能です?

これを行う最も一般的な方法は何ですか? MySQL を仮想マシンにインストールするか、Cloud SQL インスタンスを使用しますか?

ありがとうございました。

4

2 に答える 2

3

この回答は、「問題は、Cloud SQL を使用するには、JDBC を使用して接続する必要があることです。私は Python を使用しています。どうすればよいですか?」からのフォローアップです。

私は Python の世界から来たわけではありませんが、最近、GCE インスタンス上の Java アプリを Cloud-Sql DB に接続しました ( https://cloud.google.com/sql/docs/で説明されているように、cloud-sql-proxy アプローチを使用)。 compute-engine-access ) であり、Python でも機能しない理由は見当たりませんでした。

これが私が試したもので、テスト Python アプリを cloud-sql-proxy 経由で Cloud-Sql DB に簡単に接続しました。

ステップ 1: 以下のように、ローカル ポートでプロキシをダウンロードして実行します (これにより、ローカル ポート 3306 と、接続名「PROJ_NAME:TIMEZONE:SQL_NAME」で識別される Cloud-SQL データベース インスタンスとの間にチャネルが確立されます)。

sudo wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
sudo mv cloud_sql_proxy.linux.amd64 cloud_sql_proxy
sudo chmod +x cloud_sql_proxy
sudo ./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306 &

ステップ 2: python-mysqldb がインストールされていることを確認する

sudo apt-get install python-mysqldb

ステップ 3: 次のテスト プログラムを実行して、プロキシによって設定されたローカル ソケット 3306 経由で Cloud-SQL データベースに接続しました。

import MySQLdb
conn = MySQLdb.connect(host= "127.0.0.1", port=3306, user="root", passwd="my_root_password", db="my_db")
x = conn.cursor()
try:
   x.execute("""INSERT INTO Test(test_id) VALUES ('111')""")
   conn.commit()
except:
   conn.rollback()

conn.close()

それが役に立てば幸い。

于 2016-09-27T01:50:18.047 に答える