我正在按照 google 教程在 Cloud Run 上设置 Django,并通过 Google Cloud 代理连接 Postgresql。但是,我在 Google Cloud Shell 中的此命令上不断遇到错误。
云 shell 输入:xyz@cloudshell:~ (project-xyz)$ ./cloud-sql-proxy -instances="amz-reporting-files-21:us-west1-c:api-20230212"=tcp:5432
返回:错误:未知简写标志:-nstances=amz-reporting-files-21:us-west1-c:Iamz-ads-api-20230212=tcp:5432 中的“n”用法:cloud-sql-proxy INSTANCE_CONNECTION_NAME.. .[标志]
标志:-a、--address string ( ) 绑定 Cloud SQL 实例监听器的地址。(默认“127.0.0.1”) --admin-port string 仅本地主机管理服务器的端口(默认“9091”) -i, --auto-iam-authn ( )为所有实例启用自动 IAM 身份验证 -c, - -credentials-file string 使用服务账户密钥文件作为 IAM 凭证的来源。--debug 在本地主机上启用管理服务器 --disable-metrics 禁用 Cloud Monitoring 集成(与 --telemetry-project 一起使用) --disable-traces 禁用 Cloud Trace 集成(与 --telemetry-project 一起使用) --fuse string Mount使用 FUSE 访问 Cloud SQL 实例的路径中的目录。--fuse-tmp-dir string 使用 FUSE 创建的 Unix 套接字的临时目录(默认为“/tmp/csql-tmp”) -g, …
我需要执行从 BigQuery 到 Postgres 实例的外部查询。我已经在同一区域(法兰克福)的 BigQuery 端设置了一个具有公共 IP 和外部连接的 Postgres 实例。
每当我尝试执行测试查询时,都会收到以下错误:
Invalid table-valued function EXTERNAL_QUERY Connect to PostgreSQL server failed: server closed the connection unexpectedly
This probably means the server terminated abnormally before or while processing the request. at [1:15]
Run Code Online (Sandbox Code Playgroud)
有趣的是,类似的设置在另一个项目中运行良好。我不明白有什么区别。Postgres的错误日志中没有任何记录。
我该如何调试正在发生的事情?
postgresql google-cloud-sql google-bigquery google-cloud-platform
我搜索了建议的主题以找到这个问题的答案,但我一无所获.
我正在学校做一个项目,如果我可以启动并运行Cloud SQL和AppEngine,我真的很喜欢.
我目前正在使用"使用带有App Engine的Google Cloud SQL",并且在该指南中声明您的SQL必须与AppEngine应用程序位于同一区域(Eu/US).我通过应用程序仪表板查看了每个选项,但找不到任何说明我所在位置的内容.
有谁知道如何解决这个问题,还是我必须"尝试失败"?
我正在使用Jdbc和CloudSql我按照本教程https://developers.google.com/appengine/docs/java/cloud-sql/当我com.mysql.jdbc.GoogleDriver通过使用加载此类时 class.forName("com.mysql.jdbc.GoogleDriver");
我有
ClassNotFoundException
Run Code Online (Sandbox Code Playgroud)
谁能告诉我在哪里下载这个罐子?
我已经在PHP项目中创建了一个云SQL实例,并成功完成了计费程序。该项目有效。
现在,我想从另一个项目访问数据库,但是这次是在带有servlet的Java SDK项目中。使用https://developers.google.com/appengine/ docs / java / cloud-sql /中的示例
在Java项目中,我有:
在php项目ID中,我有:项目ID:phptestID实例名称:phpinstanceName
在我的Servlet代码中,执行以下连接:
String url = "jdbc:google:mysql://phptestID:phpinstanceName/dbname?user=root";
Connection conn = (Connection) DriverManager.getConnection(url);
Run Code Online (Sandbox Code Playgroud)
(... >>此时连接失败,无法访问数据库以进行以下查询)
String sqlStmt = "SELECT * FROM sometable";
PreparedStatement stmt = conn.prepareStatement(sqlStmt);
ResultSetres = stmt.executeQuery(sqlStmt);
Run Code Online (Sandbox Code Playgroud)
如何在另一个项目中访问数据库?除了your-project-id:your-instance-name以外,还有其他方法吗?
我目前的Google SQL云区域现在位于美国.我想将该地区改为欧洲.
我的实例id是:thermal-works-573:dicealpha
编辑一个实例,我们可以看到两个输入,如下面关于区域和位置的快照.
我们如何区分这两者?

我试过了
gcloud sql instances patch YOUR_INSTANCE_NAME --authorized-networks my-ip
Run Code Online (Sandbox Code Playgroud)
但是此命令会从访问控制列表中删除所有IP地址,并仅添加我的IP地址.如何添加我的IP地址以保留以前的IP地址?
我有一个Postgresql数据库在我想要导入到Google Cloud SQL的内部运行.我的数据库被调用test并由用户拥有test
我采取的步骤:
在Cloud SQL实例上创建数据库:
curl --header"授权:Bearer XXXXX"\ --header'Content-Type:application/json'\ --data'{"project":"YYYYYY","instance":"dev","name":"测试"}'\
https://www.googleapis.com/sql/v1beta4/projects/YYYYYY/instances/dev/databases -X POST
创建test用户:
gcloud beta sql users create test host --instance=dev --password=test
pg_dumpERROR: must be member of role test那么如何在test用户下执行导入?
我正在尝试将托管在Google Cloud Sql实例中的Postgres数据库连接到Data Studio。我已按照说明进行操作(位于https://support.google.com/datastudio/answer/7288010),但令我感到失望的是,我仍然无法从Data Studio连接到数据库。
我认为问题出在SSL连接上,就像我在CloudSql中的选项中启用“非安全连接”一样,我可以从Data Studio成功连接。
我创建了ssl连接正常工作所需的3个文件:
我已将它们上传到Data Studio连接页面的相关字段中:
当我按身份验证时,我收到一条错误消息:
Please make sure that the private key is in PKCS8 format.
我尝试通过运行以下命令来更改客户端密钥文件的格式:
openssl pkcs8 -topk8 -inform PEM -outform DER -in client-key.pem -out client-key.pkcs8 -nocrypt
但是我得到一个错误:
Can't reach the host. Please double check your connection parameters. Learn more about database connectors here.
最后必须注意,如果我尝试使用ssl和完全相同的密钥(但采用pem格式的客户端密钥)从本地计算机连接到数据库,则可以成功连接。
我也应该将证书转换为其他格式吗?我觉得通过SSL将Postgres db连接到Data Studio并不是一件容易的事,我是否缺少明显的东西?
任何帮助将不胜感激。
谢谢。