我正在尝试使用云函数中的 SQLAlchemy 连接到我的云 SQL 数据库,但我似乎无法计算出正确的连接字符串。
DATABASE_URL=postgres://$DB_USER:$_DB_PWD@/$DB_NAME?unix_socket=/cloudsql/$DB_INSTANCE
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
pyscopg2.ProgrammingError: invalid dns: invalid connection option "unix_socket"
Run Code Online (Sandbox Code Playgroud)
通过 unix socket 连接到 Postgresql 9.6 DB 的正确方法是什么pyscopg2
?
postgresql sqlalchemy unix-socket google-cloud-sql google-cloud-functions
我尝试将一些文件导入 PostgreSQL 数据库,但出现此错误:
Falha Importar:
SET
SET
SET
SET
SET
set_config ------------
(1 row)
SET
SET
SET
SET
SET
Import error: exit status 3 ERROR: unrecognized configuration parameter "default_table_access_method"
Run Code Online (Sandbox Code Playgroud) 我一直在用Postgresql测试Google Cloud SQL,但我有随机查询需要~3s而不是几ms.
我做的故障排除:
net.ipv4.tcp_keepalive_time
为60以确保连接没有丢失.我得到的是:我觉得我的Google Compute实例和我的Google SQL实例之间存在一些奇怪的连接/链接问题,我似乎无法弄明白.任何的想法?
编辑:我也每30秒在我的SQL Cloud实例中注意到这些日志:
ERROR: recovery is not in progress
HINT: Recovery control functions can only be executed during recovery.
STATEMENT: SELECT pg_is_xlog_replay_paused(), current_timestamp
我需要以某种方式将v10转储文件转换为9.6兼容的文件
谷歌的Cloud SQL运行PostgreSQL版本9.6,我的数据库自创建以来一直在版本10上运行.
问题:当我尝试将数据库导入Cloud SQL时,我得到了an unknown error has occurred.
死亡信息.
我已经尝试在导入到Cloud SQL时评论我的postgis /其他扩展,但无济于事.
我尝试过使用psql my_96_db < my_10.sql
并得到大量的错误,如下所示:
...
CREATE TABLE
ERROR: syntax error at or near "AS"
LINE 2: AS integer
^
ERROR: relation "authentication_phonecontact_id_seq" does not exist
CREATE TABLE
...
Run Code Online (Sandbox Code Playgroud)
我已尝试在我的v10 pg_dump -Fc
命令上使用postgres 9.6的pg_restore ,但它无法成功导入9.6数据库.输出中许多故障之一的一个例子是
pg_restore: [archiver (db)] could not execute query: ERROR: relation "public.authentication_referral_id_seq" does not exist
LINE 1: SELECT pg_catalog.setval('public.authentication_referral_id_...
^
Command was: SELECT pg_catalog.setval('public.authentication_referral_id_seq', 1, false);
Run Code Online (Sandbox Code Playgroud) 几个月来,我们一直在完全托管的 CloudRun 上使用 NestJS 和 TypeORM 运行服务,没有出现任何问题。昨天下午Improper path /cloudsql/{SQL_CONNECTION_NAME} to connect to Postgres Cloud SQL instance "{SQL_CONNECTION_NAME}"
,我们的日志开始出现错误。
我们没有围绕此时间戳进行任何服务器/SQL 更改。目前对服务没有影响,所以我们不确定这是否是一个严重的问题。
这个错误不是来自我们的代码,我们的第三方模块不应该知道我们是否使用 Cloud SQL,所以我不知道这个错误来自哪里。
我的假设是 Cloud SQL 代理或 Cloud Run 中使用的任何 SQL 客户端都会导致此错误。在使用“gcloud run deploy”CLI 命令进行部署时,我们使用 --add-cloudsql-instances 标志。
问题链接在这里
postgresql google-cloud-sql google-cloud-platform typeorm google-cloud-run
我CURRENT_TIMESTAMP
在Google Cloud SQL中使用,根据Google的说法,它会返回服务器的当前时间.
目前,随着它返回的时间,它看起来像服务器在UTC -1(即在大西洋).这不是很有帮助.
当我打电话时,如何更改时区并让它显示正确的时间(即我自己选择的时区)CURRENT_TIMESTAMP
?
我是谷歌应用程序引擎的新手请帮我解决我的问题
我在导入SQL文件时在Google云sql中创建了一个实例,然后它显示我这样的错误.
ERWOR 1227(42000)第1088行:拒绝访问; 您需要(至少一个)此操作的SUPER权限
如何为我的实例添加超级权限.
我有多个docker机器(dev,staging)在运行Django服务器的Google Compute Engine上运行(这需要访问Google Cloud SQL访问权限).我运行了多个Google Cloud SQL实例,每个实例都由我的Google Compute Engine实例上的各个docker机器使用.
目前我通过将我的计算引擎IP列入白名单来访问Cloud SQL.但我不想使用IP明显的原因,即,我不使用静态IP为我的开发机器.
但现在想用google_cloud_proxy方式获取访问权限.但是我该怎么做!GCP提供了多种访问Google Cloud SQL实例的方法.但它们都不适合我的用例:
我有这个选项https://cloud.google.com/sql/docs/mysql/connect-compute-engine ; 但是这个
那么,如何访问Docker中的CLoud SQL?如果docker compose是一个更好的开始方式; 实施kubernetes是多么容易(我使用谷歌容器引擎进行生产)
google-cloud-sql google-compute-engine google-cloud-platform
我在Google App Engine Flexible Environment中运行了一个dotnet core 2.0应用程序.在同一个Google项目中,我有一个Cloud SQL - MySQL数据库.在Cloud SQL Instance详细信息页面的"授权"选项卡下,它指出
此项目中的应用程序:全部授权.
但是,除非我将0.0.0.0/0
路由添加到授权网络部分,否则我无法从我的应用程序访问数据库.
如何在不向全世界打开数据库的情况下为我的应用程序数据库访问提供什么?
来自Jeffery Rennie的更新2018-05-21(已接受答复)
App Engine现在支持使用端口号而不是unix域套接字连接到Cloud SQL实例.所以现在,您可以添加以下内容app.yaml
:
beta_settings:
cloud_sql_instances: "your-project-id:us-central1:instance-name=tcp:5432"
Run Code Online (Sandbox Code Playgroud)
并Host=cloudsql
在appsettings.json中的连接字符串中指定:
"ConnectionString": "Uid=aspnetuser;Pwd=;Host=cloudsql;Database=visitors"
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,端口是5432,这是PostgreSQL数据库的默认端口.对于MySQL数据库,请使用端口3306.
可以在此处找到有关部署到App Engine的说明的完整示例:
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/master/appengine/flexible/CloudSql
google-app-engine google-cloud-sql google-cloud-platform .net-core app-engine-flexible
我工作的公司使用Google Cloud SQL来管理他们在生产中的SQL数据库.
我们遇到了性能问题,我认为查看/监控超过特定阈值(例如250ms)的所有查询是一个好主意(除其他事项外).
通过查看PostgreSQL文档,我认为这log_min_duration_statement
似乎是我需要的标志.
log_min_duration_statement(整数)
如果语句运行至少指定的毫秒数,则会记录每个已完成语句的持续时间.将此值设置为零将打印所有语句持续时间.
但是从Cloud SQL文档来看,我看到只能设置一组窄的数据库标志(如每个数据库实例一样),但正如你在这里 看到的那样,log_min_duration_statement
不是那些支持的标志.
所以这就是问题所在.如何使用Google Cloud SQL记录/监控慢速PostgreSQL查询?如果不可能,那么您建议我使用哪种工具/方法来获得类似的结果?
google-cloud-sql ×10
postgresql ×6
.net-core ×1
monitoring ×1
mysql ×1
performance ×1
sqlalchemy ×1
typeorm ×1
unix-socket ×1
version ×1