标签: google-cloud-sql

用于托管 MySQL 数据库的 Cloud SQL 或 VM 实例

我有一个网站,但我很困惑在哪里托管其数据库。

Google Cloud SQL D1 层有 0.5 GB RAM,每天的费用为 1.46 美元。

GCE n1-standard-2 具有 7.5 GB RAM,其成本为每天 1.68。

我在 Cloud SQL 上托管我当前的数据库,当并发活动连接增加时性能会下降。这一定是因为云 sql 的 RAM 低。

我可以在 VM 实例上设置 mysql 服务器,并且可以远程访问外部服务器。此外,Cloud SQL 对最大连接数有限制。

那么,我为什么要在 Cloud SQL 上托管它?

我主要关心的是性能。

mysql sql-server google-cloud-sql google-compute-engine

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

gcloud SQL postgres - 致命:剩余的连接槽是为非复制超级用户连接保留的

我在云 sql Postgres 日志中看到这些错误。

它是一个小的 1 cpu,4Gb 的 ram 实例,但这有点麻烦。我max_connections在可定制的标志中看不到任何可以让我绕过此错误的标志。

该应用程序是一个简单的 Django 服务,查询和负载甚至不向公众公开。

对我来说,直接的解决方案是开始将数据库连接池与 pgbouncer 或 Django 应用程序一起使用,但这会增加一些复杂性。

 max_connections 
-----------------
 100
Run Code Online (Sandbox Code Playgroud)

我们有办法增加这个数字吗?

PS:挖了一下之后好像是用gunicorn使用gevent worker。在此之前,它是稳定的 < 20 个连接。

然而,在流量激增的情况下,最好知道是否max_connections可以控制。

google-cloud-sql

7
推荐指数
2
解决办法
6239
查看次数

Google Cloud SQL 数据库删除保护

我希望能够防止删除云 SQL 实例。这似乎是避免愤怒员工或遗憾点击采取行动的好步骤。

google-cloud-sql

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

如何在 GKE 上创建 CloudSQL 代理凭据作为机密

我已按照https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine 中的步骤设置 MySQL 用户帐户和服务帐户。我已经下载了包含我的凭据的 JSON 文件。

我的问题是在我从网站复制的代码中:

- name: cloudsql-proxy
  image: gcr.io/cloudsql-docker/gce-proxy:1.11
  command: ["/cloud_sql_proxy",
            "-instances=<INSTANCE_CONNECTION_NAME>=tcp:3306",
            "-credential_file=/secrets/cloudsql/credentials.json"]
  securityContext:
    runAsUser: 2  # non-root user
    allowPrivilegeEscalation: false
  volumeMounts:
    - name: cloudsql-instance-credentials
      mountPath: /secrets/cloudsql
      readOnly: true
Run Code Online (Sandbox Code Playgroud)

指定了路径 /secrets/cloudsql/credentials.json ,我不知道它来自哪里。

我想我应该通过以下方式创建凭据作为秘密

kubectl create secret generic cloudsql-instance-credentials --from-file=k8s\secrets\my-credentials.json

但在那之后我不知道该怎么办。这个秘密是如何成为路径的/secrets/cloudsql/credentials.json

google-cloud-sql kubernetes google-kubernetes-engine cloud-sql-proxy

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

将数据库从 Google Cloud Sql 导出到外部数据库

我正在尝试导出在 Google Cloud Sql 中创建的数据库并将其导入到新的外部服务器中。

我尝试通过 google 控制台创建 sql 备份,下载它并通过 filezilla 将其复制到新服务器,然后启动以下命令:

psql -U postgres -d ciclods-db -1 -f Backup-db_Cloud_SQL_Export_2019-03-23\ \(17_01_19\)
Run Code Online (Sandbox Code Playgroud)

但我得到这个输出:

错误:角色“cloudsqladmin”不存在撤销

错误:角色“cloudsqlsuperuser”不存在GRANT

在这些情况下应遵循的正确程序是什么?

google-cloud-sql

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

在命令行中以非交互方式执行 Google Cloud SQL 查询

我正在编写一个脚本来使用 SDK 编排 Google Cloud SQL 实例gcloud

SDK 有一个连接命令,该命令需要用户名,但必须在提示符下输入密码 - 即它不能作为参数传递。

成功验证后允许执行查询 - 流程如下所示:

$ gcloud sql connect instance-name --user=root
Whitelisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [root].Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 8054
Server version: 5.7.14-google-log (Google)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' …
Run Code Online (Sandbox Code Playgroud)

mysql bash non-interactive google-cloud-sql

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

无法从 BigQuery 作业连接到 Cloud SQL Postgres

我无法使用从 Google BigQuery 到 Google Cloud SQL Postgres 的联合查询功能。Google 最近宣布BigQuery 的联合查询功能处于测试状态。

\n\n

我使用文档中描述的 EXTERNAL_QUERY 语句,但无法连接到我的 Cloud SQL 实例。例如使用查询

\n\n
SELECT * FROM EXTERNAL_QUERY(\'my-project.europe-north1.my-connection\', \'SELECT * FROM mytable;\');\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
SELECT * FROM EXTERNAL_QUERY("my-project.europe-north1.pg1", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到此错误:

\n\n
Invalid table-valued function EXTERNAL_QUERY Connection to PostgreSQL server failed: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.\n
Run Code Online (Sandbox Code Playgroud)\n\n

有时错误是这样的:

\n\n
Error encountered during execution. Retrying may solve …
Run Code Online (Sandbox Code Playgroud)

postgresql google-cloud-sql google-bigquery

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

如何从 GCP 上的实例备份恢复单个数据库?

我是一名新手 GCP 管理员。我在一个实例上运行多个应用程序。每个应用程序都有自己的数据库。我通过 GCP GUI 设置了自动实例备份。

我想为其中一个应用程序(即一个数据库)可能出现的故障做好准备。我想准备一个恢复此类数据库的过程,但在 GCP GUI 中没有恢复一个数据库的选项,我需要恢复整个实例,但由于该实例上其他应用程序的操作,我无法恢复。

我还在文档中读到无法导出备份。

有没有办法从整个实例备份中只恢复一个数据库?

我是否需要编写一个 MySQL 脚本来单独备份每个数据库并将其保存到云存储?

mysql google-cloud-sql google-cloud-platform

7
推荐指数
2
解决办法
8653
查看次数

无法从使用自定义运行时在 Docker 中运行 .NET Core 应用程序的 App Engine 连接到 Google Cloud SQL 中的 postgres

Exception while connecting我尝试了很多方法,但在尝试从我的 Google Cloud App Engine 连接到 Google Cloud PostgreSQL 实例时似乎无法通过。

这可能是我作为开发人员处理过的最令人沮丧的事情。连接到数据库不应该这么困难。

我究竟做错了什么?

不起作用的事情:

应用程序.yaml:

runtime: custom
env: flex
beta_settings:
  cloud_sql_instances: "<project-id>:<region>:<sql-instance>=tcp:5432"
Run Code Online (Sandbox Code Playgroud)

最终使用的连接字符串:

Uid=<db_user>;Pwd=<db_password>;Host=cloudsql;Database=<db_name>

// other attempts:
Uid=<db_user>;Pwd=<db_password>;Host=cloudsql;Database=<db_name>;Port=5432
Uid=<db_user>;Pwd=<db_password>;Host=/cloudsql/<project-id>:<region>:<sql-instance>;Database=<db_name>
Uid=<db_user>;Pwd=<db_password>;Host='/cloudsql/<project-id>:<region>:<sql-instance>';Database=<db_name>
Uid=<db_user>;Pwd=<db_password>;Server='/cloudsql/<project-id>:<region>:<sql-instance>';Database=<db_name>
Run Code Online (Sandbox Code Playgroud)

用法:

var connectionString = new NpgsqlConnectionStringBuilder(<connection string>)
{
    SslMode = SslMode.Disable
};

NpgsqlConnection connection =
    new NpgsqlConnection(connectionString.ConnectionString);

connection.Open();
Run Code Online (Sandbox Code Playgroud)

相关堆栈跟踪:

Exception while connecting
   at Npgsql.NpgsqlConnector.Connect(NpgsqlTimeout timeout)
   at Npgsql.NpgsqlConnector.RawOpen(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnector.Open(NpgsqlTimeout …
Run Code Online (Sandbox Code Playgroud)

c# postgresql google-app-engine google-cloud-sql docker

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

仪表板后端的 BigQuery 与 Cloud SQL

我对 BQ 与 Cloud SQL 用例有点困惑。我在 BQ 中有几 Gbs 的行数据,需要在该数据上构建 Web 仪表板(SQL 与多个表的 JOIN)。

直接从 BQ 查询数据是否有很大的缺点(例如延迟或并发),我应该将数据移动到 Cloud SQL(pSQL) 并进行查询吗?

数据不是实时的。我预计最多有几百个并发请求。

我不希望这方面的成本很高,因此查询速度和可靠性是主要目标。

谢谢!

google-cloud-sql google-bigquery

7
推荐指数
2
解决办法
6152
查看次数