标签: google-cloud-sql

API调用datastore_v3.Put()的请求太大了

我正在使用带有appengine的谷歌云sql.

com.google.apphosting.api.ApiProxy$RequestTooLargeException: The request to API call datastore_v3.Put() was too large.尽管我没有使用Datasotre API ,但我得到了.

我认为根据文档https://developers.google.com/appengine/docs/java/cloud-sql/developers-guide#access_limits,数据大小限制是在60秒内提供16MB.

我的数据大小约为1 MB,我的响应肯定不到1分钟.如果我尝试使用较小的数据,一切正常.

那么,为什么会抛出异常呢?问题是什么 ?这是谷歌应用引擎中的错误吗?或者是否有尺寸限制,在哪里记录?或者是什么 ?

java google-app-engine google-cloud-sql

8
推荐指数
1
解决办法
3623
查看次数

应用引擎无法连接到Google云sql

我的Google应用引擎应用无法通过此错误连接到Google云sql实例:

'PDOException' with message 'SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
Run Code Online (Sandbox Code Playgroud)

我检查了文档,并严格按照说明进行操作.我将应用程序添加为授权应用程序,并使用云控制台设置root密码.我还给了instace一个ip地址,可以从本地开发机器上的Workbench连接到它.使用工作台,我添加了用户和配置的权限.但我仍然无法从应用程序的开发版本(与工作台相同的ip)或已部署的应用程序连接到它.

这是我的连接线:

$conn = new PDO('mysql:unix_socket=/cloudsql/****:****;charset=utf8', 'the_username', 'its_password');
Run Code Online (Sandbox Code Playgroud)

这个问题似乎与这个问题相似.但是,即使在设置新用户并授予权限后,我仍然无法连接.知道我哪里错了吗?

谢谢

php google-app-engine google-cloud-sql

8
推荐指数
1
解决办法
2971
查看次数

处理Cloud SQL中的并发请求和连接

我们使用Datastore在App Engine上创建了一个应用程序.现在,我们已经导致使用Cloud SQL的,因为我们想用联接,嵌套查询和功能,如average,total等数据会从数据存储通过日常cron作业迁移到云SQL.

我刚刚通过以下链接了解与性能和限制相关的基本细节.

到目前为止,看起来Dier D0或D1将达到我们预期的目的.

很少有令我困惑的事情:

a)什么是待连接以及它如何影响?不确定是否抛出1033实例有太多并发请求,当它超过100.我们如何处理?是否我们可以创建250个连接,但一次只能使用100个连接?

b)250个并发连接.如果超过250,应该抛出错误太多的连接

c)每个应用程序引擎实例12个每个SQL实例的并发连接.我们如何确保每个应用引擎实例不超过12个连接?

我通过以下论坛:

App Engine中的Google Cloud SQL有哪些连接限制,以及如何最好地重用数据库连接?

在Google Cloud SQL(GAE)Python应用程序中管理数据库连接的好方法是什么?

但人们面临着某些问题.

d)我们遇到了一个OperationalError:

(2013年,当我们尝试使用1000多个请求进行测试时,"在读取初始通信数据包时丢失了与MySQL服务器的连接",系统错误:38")错误.

我们有1500多人同时使用我们的系统,看起来它会失败.因此,如果由于上述问题我们可以使用Cloud SQL,我们会感到困惑.但是应该可以使用解决方案.

有人可以帮忙吗?

python mysql google-app-engine google-cloud-sql google-cloud-datastore

8
推荐指数
1
解决办法
645
查看次数

Google Cloud Sql第二代Utf8Mb4编码

我们正在使用Google Cloud Sql Second Generation和我们的AppEngine应用程序.但是今天我们发现了一些问题,我们无法在我们的数据库中插入表情符号字符,因为我们无法将某些服务器标志更改为utf8mb4字符编码.

我们已经将character_set_server标志更改为utf8mb4,但它还不够

我们必须更改:character_set_system character_set_client collaction_connection

标志到utf8mb4,但第二代数据库不允许root用户更改这些标志.我们可以做些什么来解决这个问题

有没有人对此有任何想法?

谢谢

google-app-engine google-cloud-sql utf8mb4

8
推荐指数
1
解决办法
2229
查看次数

使用Cloud sql代理连接到多个CloudSQL实例?

我正在尝试使用cloud sql代理连接到2个不同的云sql实例...

在文档中,我找到了一条关于Use -instances parameter. For multiple instances, use a comma-separated list.但不确定如何制作这个外观的线.https://cloud.google.com/sql/docs/sql-proxy.我正在使用Google容器引擎,并且使用单个CloudSQL实例它可以很好地运行:

- name: cloudsql-proxy
  image: b.gcr.io/cloudsql-docker/gce-proxy:1.05
  command: ["/cloud_sql_proxy", "--dir=/cloudsql",
            "-instances=starchup-147119:us-central1:first-db=tcp:3306",
            "-credential_file=/secrets/cloudsql/credentials.json"]
  volumeMounts:
  - name: cloudsql-oauth-credentials
    mountPath: /secrets/cloudsql
    readOnly: true
  - name: ssl-certs
    mountPath: /etc/ssl/certs
Run Code Online (Sandbox Code Playgroud)

但对于多个我已尝试过这样的-instances部分:

-instances=starchup-147119:us-central1:first-db,starchup-147119:us-central1:second-db=tcp:3306  
and  
-instances=starchup-147119:us-central1:first-db=tcp:3306,starchup-147119:us-central1:second-db=tcp:3306
Run Code Online (Sandbox Code Playgroud)

但他们都犯了各种错误; ECONNREFUSED 127.0.0.1:3306,ER_DBACCESS_DENIED_ERRORER_ACCESS_DENIED_ERROR

任何帮助深表感谢!

mysql google-cloud-sql google-cloud-platform cloud-sql-proxy

8
推荐指数
2
解决办法
2344
查看次数

无法从应用引擎连接到google cloudsql

我一直在尝试过去2天从appengine连接到cloudql,我能够通过IP从linux webserver连接,但是无法从具有相同设置的app引擎连接.

我的连接字符串如下:请注意实际的appid被替换以及dbname

在app.yaml

env_variables:
  MYSQL_DSN: mysql:unix_socket=/cloudsql/appid:us-central1:sql-instance-1;dbname=dbname
  MYSQL_USER: root
  MYSQL_PASSWORD: ''
Run Code Online (Sandbox Code Playgroud)

在phpfile中

$dsn = getenv('MYSQL_DSN');
$user = getenv('MYSQL_USER');
$password = getenv('MYSQL_PASSWORD');
if (!isset($dsn, $user) || false === $password) {
    throw new Exception('Set MYSQL_DSN, MYSQL_USER, and MYSQL_PASSWORD environment variables');
}
$conn = new PDO($dsn, $user, $password);
Run Code Online (Sandbox Code Playgroud)

以上内容来自https://cloud.google.com/appengine/docs/standard/php/cloud-sql/ 我尝试过使用密码,而不是使用密码.我尝试过用户名root,作为用户名,密码和用户名没有.

我正在使用第二代设置和flex php环境,我一直收到的错误如下:

短暂的错误

SQLSTATE[HY000] [2002] No such file or directory
Run Code Online (Sandbox Code Playgroud)

完全错误

Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /app/dbconn.php:12 Stack trace: #0 /app/dbconn.php(12): PDO->__construct('mysql:unix_sock...', 'root', '') #1 …
Run Code Online (Sandbox Code Playgroud)

php google-app-engine google-cloud-sql

8
推荐指数
1
解决办法
1730
查看次数

使用 Cloud SQL 避免每日高额费用

所以我处于开发模式,开发后 10 天内,我向 Google 支付了300 美元的账单。

我做了什么 :

  1. 创建一个测试表,并向其中添加记录 - 文本和数字。
  2. 从我的 Mac 执行多个查询,我想说6 天每天 100 个
  3. 有一个大约有100k 行和 6 列的表。

这就是我对每个查询所做的事情(为每个查询重新连接是否会花费更多?):

engine = sqlalchemy.create_engine('postgresql://' + username + ':' + password + '@' + host + ':' + port + '/' + database)
df = pd.read_sql_query(current_query, engine)
Run Code Online (Sandbox Code Playgroud)
  1. 我一次写入大约 2000 行(只有我),有时我会读取数千行 - 用于开发。

你可以看到我的收费这里这里

  1. CPU 24小时持续显示1.4%,但我一直不使用它。

我可以看到RAM每天收费9 美元,CPU 每天收费 8 美元。收费是持续的、每天的,所以看来与我的行为无关。

我与谷歌交谈过,他们无法解释这笔费用,你也无法在Console.

我该怎么做才能准确了解他们对我提出的指控?好像是每天的固定金额。

如果谷歌就是这样收费的,想想一万个(或更多)用户要花多少钱就很可怕

google-cloud-sql google-cloud-platform

8
推荐指数
1
解决办法
6794
查看次数

谷歌计算引擎VM启动时自动启动gcloud sql代理

我正在使用谷歌计算引擎,并有一个自动缩放实例组,可以根据需要启动新的虚拟机,所有虚拟机都位于负载平衡器后面。我也在同一个项目中使用谷歌的云 SQL。VM 需要连接到云 SQL 实例。

由于虚拟机的 IP 是动态的,我不能只是将 IP 插入 SQL 访问配置,所以我遵循了云 sql 代理设置以及来自这个非常相似问题的注释: How to connect from a pool of Google Compute Engine实例到同一项目中的 Cloud SQL DB?

我现在可以登录到单个测试 VM 并运行:

./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306
Run Code Online (Sandbox Code Playgroud)

一切正常,并且该 VM 连接到云 SQL 实例。

下一步是我遇到问题的地方。如何设置虚拟机,使其在从实例模板构建或刚刚重新启动时自动启动代理。显而易见的答案似乎是将上述内容推送到 VM 的启动脚本中,但这似乎不起作用。因此,使用我的单个测试 VM,我可以通过 SSH 连接到 VM 并手动运行 cloud_sql_proxy 命令,一切正常。如果我然后在我的启动脚本中包含以下内容并重新启动虚拟机,它不会连接:

#! /bin/bash
./cloud_sql_proxy -instances=PROJ_NAME:TIMEZONE:SQL_NAME=tcp:3306
Run Code Online (Sandbox Code Playgroud)

有什么建议?我真的不敢相信从同一个项目中的 VM 连接到 SQL 云这么难......

mysql google-cloud-sql google-compute-engine

7
推荐指数
1
解决办法
3021
查看次数

我可以使用 gcloud sql 命令在我的 Google Cloud Sql 实例上运行 sql 文件吗

我有一个 sql 文件,它创建我的 mysql 数据库以及所有用户和表。

我试图找出一种方法可以自动使用此 sql 文件来初始化我的 Google Cloud sql 实例上的数据库。

到目前为止,我能够确定的唯一方法是使用gcloud sql connect命令,然后将 sql 文件的内容复制并粘贴到 mysql 提示符中。

但必须有更好的方法。浏览 gcloud sql 文档,我没有找到一个。我错过了什么吗?

mysql google-cloud-sql google-cloud-platform gcloud

7
推荐指数
1
解决办法
4610
查看次数

在启用 IAM 登录的情况下通过 cloud-sql-proxy 从 Cloud Run 连接到 Cloud SQL

我想使用服务帐号从 Cloud Run 连接到 Cloud SQL 实例。连接过去是在 VPC 内创建的,我们只需向 PostgreSQL 客户端提供带有 auser和 a 的连接字符串。password但现在我们希望身份验证由 Google Cloud IAM 管理,服务帐户与 Cloud Run 服务关联。

在我的机器上,我可以使用enable_iam_login参数来使用我自己的服务帐户。运行 Cloud SQL 代理的命令如下所示:

./cloud_sql_proxy -dir=/cloudsql -instances=[PROJECT-ID]:[REGION]:[INSTANCE] \
-enable_iam_login -credential_file=${HOME}/.config/gcloud/application_default_credentials.json
Run Code Online (Sandbox Code Playgroud)

问题是我似乎找不到使用 IAM 身份验证方法从 Cloud Run 运行 Cloud SQL 代理的方法,我只能提供实例名称。以前有人遇到过这个问题吗?

google-cloud-sql google-cloud-platform cloud-sql-proxy google-cloud-iam google-cloud-run

7
推荐指数
1
解决办法
1820
查看次数