使用 Python 连接到 Cloud SQL 并不总是那么简单。
根据上下文,有时您必须连接到 Unix 域套接字、将 TCP 连接的 IP 地址列入允许列表、在本地运行 Cloud SQL Auth 代理。确保这些连接安全是另一个挑战:您可能必须管理 SSL 证书、防火墙规则、IP 地址等。
是否有推荐的方法使用 Python以安全且简单的方式连接到 Cloud SQL ?
我刚刚开始尝试从 CloudSQL (PostgreSQL) 到 Bigquery 的新数据流,在启动流时遇到很多错误。主要是BIGQUERY_UNSUPPORTED_TYPE_FOR_PRIMARY_KEY和BIGQUERY_TOO_MANY_PRIMARY_KEYS. 有些表刚刚创建,而其他表则没有创建,即使它们具有相同的主键类型(由 bigserial PRIMARY KEY 创建)
postgresql google-cloud-sql google-bigquery google-datastream
我们什么时候可以期待在Google App Engine中支持django 1.4?
在最近更新Google App Engine上的应用时,我正在使用以下方法更新数据库:
SETTINGS_MODE='prod' ./manage.py syncdb
Run Code Online (Sandbox Code Playgroud)
这是我上次运行时的工作,但现在我收到以下错误:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 415, in handle
return self.handle_noargs(**options)
File "/c/clients/green_rentals/code/green-rental/south/management/commands/syncdb.py", line 92, in handle_noargs
syncdb.Command().execute(**options)
File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 415, …Run Code Online (Sandbox Code Playgroud) 尝试通过各种MySQL客户端连接到Google Cloud SQL实例时,root登录现在失败并显示错误:
$ mysql --host = 173.194.xx --user = root -p输入密码:ERROR 1045(28000):拒绝访问用户'root'@'98.225.xx'(使用密码:YES)
我以前能够登录并执行各种任务(创建本地用户,添加表和存储过程等).
我仍然可以以我创建的本地用户身份登录.
所以我有:
有关诊断root登录失败的任何建议吗?
谢谢你的帮助.
我们需要将WordPress用于流量较高的网站。我们预计每月的初始浏览量为50万,每月增加到约800万。用法主要是在工作时间内使用,每月工作8个小时,大约每月20天。
我们正在考虑将Google App Engine与Google Cloud SQL结合使用。我们想知道它对于这种负载的扩展能力如何。理论上说Google App Engine应该自动扩展,但是不确定扩展时Google Cloud SQL有多好。这将是一个主要读取的数据库,一些写入。
所以问题是:
我已经设置了一个默认的django/django-wiki项目.本地测试工作正常.从本地服务器(带google.appengine.ext.django.backends.rdbms)连接到云sql 不起作用,我相信由于一些身份验证问题.更重要的是,我无法从生产服务器连接.
我确保不在MySQLdb我的虚拟环境目录中部署我的本地会话.
我有以下内容app.yaml:
- name: MySQLdb
version: "latest"
Run Code Online (Sandbox Code Playgroud)
我的DATABASE条目如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'root',
'PASSWORD': '',
'HOST': '/cloudsql/appname:sqlinstance',
'PORT': '',
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎工作,或至少不抱怨丢失包或mysql导入问题.我的问题如下(从生产日志中获取,但也可以通过django调试输出看到):
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/MySQLdb-1.2.4b4/MySQLdb/connections.py", line 190, in __init__
super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
Run Code Online (Sandbox Code Playgroud)
可能是什么导致了这个?这是否意味着与某事有联系但没有回复?从外部源连接时,其他帖子似乎提到这是一个问题,但此连接来自app引擎AFAIK.
我正在设计一个解决方案,其中Google Cloud SQL将用于存储来自应用程序常规功能的所有数据(OLTP数据的种类).预计数据会随着时间的推移而增长到相当大的规模.数据本身具有关系性,因此我们选择了Cloud SQL而不是Cloud Datastore.
这些数据需要被提供给Big Query进行分析,这需要接近实时分析(作为最佳情况),尽管实际上可以预期一些滞后.但我正在尝试设计一种解决方案,将这种滞后降低到最低限度.
我的问题有3个部分 -
我应该使用Cloud SQL存储数据,然后将其移至BigQuery或更改基本设计本身,并使用BigQuery初始存储数据吗?BigQuery是否适合用于常规,低延迟的OLTP工作负载?(我不这么认为 - 我的假设是正确的吗?)
将Cloud SQL数据加载到BigQuery中的推荐/最佳实践是什么?这种集成是否接近实时?
Cloud Dataflow是一个不错的选择吗?如果我将Cloud SQL连接到Cloud DataFlow并进一步连接到BigQuery - 它会起作用吗?或者有没有其他方法可以实现这一目标更好(如问题2中所述)?
google-cloud-sql google-bigquery google-cloud-platform google-cloud-dataflow
我已经按照《MySQL导出指南》成功导出了MySQL数据库。
现在,我正在尝试按照《MySQL导入指南》导入MySQL数据库。
我已经检查了service_account_email我正在使用的权限,并且同时允许了Admin SQL和Admin Storage权限。
我可以使用以下命令在本地成功激活我的服务帐户:
gcloud auth activate-service-account <service_account_email> --key-file=<service_account_json_file>
Run Code Online (Sandbox Code Playgroud)
运行命令后:
gcloud sql import sql <instance> <gstorage_file> --database=<db_name> --async
Run Code Online (Sandbox Code Playgroud)
我得到此信息:
{
"error": {
"errors": Array[1][
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的其他事情
我还尝试使用service_account_emailSQL实例的,该实例来自:
gcloud sql instances describe <instance_name>
Run Code Online (Sandbox Code Playgroud)
但是,它似乎有相同的错误。
题
根据给出的REST API JSON错误,如何使用进行“登录”,service_account_email这样我就不会得到401 Error?
user-permissions google-cloud-storage google-cloud-sql service-accounts google-cloud-platform
我正在尝试创建到Cloud SQL数据库的TLS连接,但是在尝试准备一条语句时遇到以下错误:
x509: cannot validate certificate for <cloud sql instance ip>
because it doesn't contain any IP SANs
Run Code Online (Sandbox Code Playgroud)
这是我的设置代码:
Run Code Online (Sandbox Code Playgroud)rootCertPool := x509.NewCertPool() pem, err := ioutil.ReadFile("/path/server-ca.pem") if err != nil { log.Fatal(err) } if ok := rootCertPool.AppendCertsFromPEM(pem); !ok { log.Fatal("Failed to append PEM.") } clientCert := make([]tls.Certificate, 0, 1) certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client-key.pem") if err != nil { log.Fatal(err) } clientCert = append(clientCert, certs) mysql.RegisterTLSConfig("custom", &tls.Config{ RootCAs: rootCertPool, Certificates: clientCert, }) db, err := sql.Open("mysql", "<user>:<password>@tcp(<cloud sql ip>:3306)/<db_name>?tls=custom")
google-cloud-sql ×10
django ×2
mysql ×2
python ×2
autoscaling ×1
go ×1
postgresql ×1
ssl ×1
wordpress ×1