我想通过安装在我本地机器上的 MySQL 工作台连接到我的 Google 云 SQL 实例。使用ipconfig,我确定了我机器的 IPV4 地址,但是当我尝试在
编辑 > 访问控制 > 授权,
我收到一条消息 Private networks cannot be whitelisted.
关于如何解决这个问题的任何想法?
我正在尝试使用 SQLAlchemy 连接到 Google Cloud 上的 PostgreSQL 数据库。建立与数据库的连接需要指定以下形式的数据库 URL: dialect+driver://username:password@host:port/database
我知道这dialect + driver是什么(postgresql),我知道我的用户名和密码,我知道数据库名称。但是我不知道如何在谷歌云控制台上找到主机和端口。我试过使用实例连接名称,但这似乎不起作用。有谁知道我在哪里可以在 Google Cloud 上找到这些信息?
python postgresql google-cloud-storage google-cloud-sql google-cloud-platform
我有一个带有 70GB 未使用存储空间的 Google Cloud SQL MySQL 2nd Gen 5.7 实例。我想减少我的实例未使用的存储,因为这是主要的托管成本之一。
我认为可能的唯一方法是将所有数据库转储到使用正确存储容量创建的新 Google Cloud SQL 实例中。然而,这种方法有几个缺陷:
我有哪些选择?
我正在尝试将我的 gcloud VM 连接到也在云上的 mySQL 实例,并不断收到此错误:
错误 2005 (HY000):未知的 MySQL 服务器主机 '[10.0.0.1]' (0)
我按照从谷歌的文档,这些指令https://cloud.google.com/sql/docs/mysql/connect-admin-ip#connect-ssl,并没有发现任何的理由,为什么这可能很多后发生的搜索。我已经仔细检查了 VM 的静态 IP 是否已获得授权,并且我拥有 SQL 数据库的正确 IP。我尝试了两种连接方式,使用这些 IP 地址和 SSL。
mysql --host=[10.0.0.1] --user=root --password=
Run Code Online (Sandbox Code Playgroud)
和
mysql --ssl-ca=server-ca.pem --ssl-cert=client-cert.pem --ssl-
key=client-key.pem --host=[10.0.0.1] --user=root --password=ms
Run Code Online (Sandbox Code Playgroud)
两者都返回相同的错误,我不知道在哪里看。有没有人以前见过这个,或者在 SQL 方面更有经验?这是我第一次在谷歌云上使用 SQL 数据库...
谢谢!
我以 postgres 用户身份连接到我正在使用的数据库。例如app_production。然后我运行了这些命令,如在 PostgreSQL中创建只读用户中所述:
app_production=> GRANT USAGE ON SCHEMA public TO "data-studio";
GRANT
app_production=> GRANT SELECT ON users TO "data-studio";
ERROR: permission denied for relation users
Run Code Online (Sandbox Code Playgroud)
看起来 postgres 用户没有足够的权限。如何授予我的“data-studio”用户对“users”表的读取权限?
适用于我新创建的 martins_testing 表
$ psql -h $HOST -U postgres app_production
app_production=> create table martins_testing (id int);
CREATE TABLE
app_production=> GRANT SELECT ON martins_testing TO "data-studio";
GRANT
Run Code Online (Sandbox Code Playgroud)
但不是在旧的用户表上通过rake db:create珍贵运行创建的。
$ psql -h $HOST -U postgres app_production
app_production=> GRANT SELECT ON users TO "data-studio"; …Run Code Online (Sandbox Code Playgroud) 我们的 Postgres 数据库(托管在具有 1 个 CPU、3.7 GB RAM 的 Google Cloud SQL 上,见下文)主要由一个大约 90GB 的大表组成,大约有大约 6000 万行。使用模式几乎完全由附加和靠近表末尾的一些索引读取组成。有时会删除一些用户,删除散布在表中的一小部分行。
这一切正常,但每隔几个月就会在该表上触发自动清理,这会显着影响我们服务的性能约 8 小时:
这会在 autovacuum 期间将我们服务的第 95 个延迟百分位数从 ~100ms 增加到 ~0.5-1s,从而触发我们的监控。该服务每秒处理大约 10 个请求,每个请求由一些简单的 DB 读/写组成,每个请求的延迟通常为 2-3 毫秒。
以下是一些说明问题的监控屏幕截图:
数据库配置相当普通:
记录此 autovacuum 过程的日志条目如下所示:
system usage: CPU 470.10s/358.74u sec elapsed 38004.58 sec
avg read rate: 2.491 MB/s, avg write rate: 2.247 MB/s
buffer usage: 8480213 hits, 12117505 …Run Code Online (Sandbox Code Playgroud) postgresql google-cloud-sql postgresql-performance autovacuum
通过 jenkins(备份)运行 sql 导出,我定期收到“错误:(gcloud.sql.export.sql)HTTPError 409:操作失败,因为另一个操作已经在进行中。错误:(gcloud.sql.operations.wait ) 参数 OPERATION [OPERATION ...]:必须指定。
我正在尝试确定在哪里可以看到导致此失败的工作
我试图将 gcloud sql 操作等待 --timeout 扩展到 1600 没有运气
gcloud sql 操作等待 --timeout=1600
这是我的场景。我已经设置了一个在 Google SQL 云中运行的 Postgres DB 实例。它已启动并正在运行,如果我将本地 IP 列入白名单,我可以毫无问题地直接连接。
然后我部署了一个 docker 容器 (postGrest),它是一个连接到 postgres 数据库的 Web 服务器。当我在 Google Cloud Run 上配置它时,它确实有一个下拉选项,我可以在其中指定数据库连接,它说,在幕后,它为此连接配置 Cloud SQL 代理。
容器允许传入环境变量以指定哪个服务器等。一个必需的参数是 postgred 实例的 DB_URI。在本地运行时,它看起来像这样:
postgres://authenticator:mysecretpassword@localhost:5432/testdb
当我尝试在云版本上配置它时,我尝试使用 IP 127.0.0.1(谷歌云 SQL 代理文档说这是通过代理连接的方式)。这没有用。
然后我尝试使用分配给 postgres 数据库的公共 IP ......这也不起作用。
有谁知道如何使用这种 DB_URI 格式指定正确的连接字符串?
postgresql google-cloud-sql google-cloud-platform postgrest google-cloud-run
我需要为我正在处理的用例之一提供一些建议。
用例:
我们在 Cloud SQL 中有大约 5-10 个表的数据,有些被视为查找,有些被视为事务性的。我们需要以某种方式将其提供给 BigQuery,从中制作 3-4 个表(扁平化、嵌套或非规范化),这些表将用于 Data Studio、Looker 等中的报告。
数据应该以增量方式处理,并且 Cloud SQL 中的更改可能每 5 分钟发生一次,这意味着数据应该可以近乎实时地用于 BigQuery 报告。如果可能,我们还应该维护数据更改的历史记录。
解决方案:
我们在 BigQuery 中保留了 3 层,因此来自 Cloud SQL 的数据来到第一层,然后在展平后将其保存到第二层(维护历史记录),然后将其处理插入第三层(报告)。这种方法的 问题在于,它是为日常处理而开发的,无法帮助处理 Cloud SQL 中每 5 分钟更改一次的数据。
欢迎任何建议。
注意:-我们需要使用 Dataflow、VM 或其他方式来进行一些逻辑处理,这意味着我们不能只使用计划查询,因为我们不能使用查询来处理所有逻辑,但是可以使用视图和代码的混合.
dataflow google-cloud-sql google-bigquery google-cloud-platform google-cloud-dataflow
我最近开始修改 Google Cloud SQL - PostgreSQL。
我创建了一个空数据库,在 4-5 天后,其存储使用量已增长到 20GB 以上。它只是不断上升,但数据库中没有数据。它甚至没有被使用。
有谁知道会做什么以及如何阻止它?
google-cloud-sql ×10
postgresql ×5
mysql ×2
autovacuum ×1
dataflow ×1
postgrest ×1
python ×1
sql ×1