【发布时间】:2023-03-30 01:13:01
【问题描述】:
我正在 Google Compute Engine 上构建一个 Django 站点,并且我想在 SQL Cloud 中安装我的数据库。有可能吗?
最常用的方法是什么?在虚拟机上安装 MySQL 还是使用 Cloud SQL 实例?
谢谢。
【问题讨论】:
标签: google-cloud-sql google-compute-engine
我正在 Google Compute Engine 上构建一个 Django 站点,并且我想在 SQL Cloud 中安装我的数据库。有可能吗?
最常用的方法是什么?在虚拟机上安装 MySQL 还是使用 Cloud SQL 实例?
谢谢。
【问题讨论】:
标签: google-cloud-sql google-compute-engine
您可以根据需要使用 Google Cloud SQL 或管理自己的 SQL 数据库。
要使用 Cloud SQL,您需要按照此处的说明进行操作:https://developers.google.com/cloud-sql/docs/external
如果您想管理自己的 SQL 数据库,您可以在实例上安装 MySQL 或其他一些数据库。根据您的需要,您可以从连接了相当大磁盘的 g1-small 开始,然后使用更大的实例类型来运行您的数据库。
如果您正在运行自己的数据库,则需要确保定期备份并将它们从数据库机器上复制到 Google Cloud Storage 之类的地方。如果您使用 Cloud SQL,则可以使用控制台或 API 来安排数据库备份。
【讨论】:
这个答案是从 “嗯,问题是要使用 Cloud SQL,我必须使用 JDBC 连接。我正在使用 Python。我该怎么做?”
我不是来自 Python 世界,但我最近将 GCE 实例上的 Java 应用程序连接到 Cloud-Sql DB(通过 cloud-sql-proxy 方法,如下所述:https://cloud.google.com/sql/docs/compute-engine-access)并且没有看到任何原因为什么它也不应该适用于 Python。
这是我刚刚尝试并通过 cloud-sql-proxy 轻松将我的测试 Python 应用连接到 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
Steo 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()
希望对你有帮助。
【讨论】: