问题标签 [google-cloud-proxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-platform - 云 sql 代理在 docker 容器中不起作用
我的应用程序在 docker 容器上运行并部署了 google 计算组并启用了自动缩放。我面临的问题是从自动缩放的计算实例连接 mysql 实例,但它无法正常工作。
Dockerfile
当我运行我的容器时,最后一行./cloud_sql_proxy -dir=/cloudsql -instances=<connectionname>=tcp:0.0.0.0:3306 -credential_file=file.json &
没有被执行。
如果我./cloud_sql_proxy -dir=/cloudsql -instances=<connectionname>=tcp:0.0.0.0:3306 -credential_file=file.json &
在容器内运行它(通过 docker 命令进入容器)它正在工作,当我再次关闭终端时它停止工作。
即使我尝试在后台运行,但没有运气。
有人知道吗?
java - Spring boot 和 GCP - 使用 spring-cloud-gcp-starter-sql-postgresql 连接 Cloud SQL 实例尝试 SSL 并且延迟启动
我有一个 Spring boot 项目,它应该与 Cloud SQL 的实例连接,spring-cloud-gcp-starter-sql-postgresql
以避免在项目中显式使用 IP。
到目前为止,它连接良好,但延迟了很多(大约 30 秒开始),因为它尝试通过 SSL 套接字连接,经过多次尝试,它连接了。
在日志中有一行说:
据我所知,该参数useSSL=false
不适用于 postgresql。正确的是,ssl=false
但是当我尝试用 application.yml 覆盖 JDBC Url 时,它会打印以下日志:
我怀疑延迟是因为 SSL 连接。所以我有两个问题:
- 如何避免使用 SSL 连接?由于我没有明确设置 JDBC URL,因此无法
ssl=false
在参数中使用 。 - 我怀疑这是因为未设置 SSL 客户端证书而延迟。如果是这种情况,我该如何设置?我已经有了 .pem 但我不知道如何实现它
我添加了我application.yml
的配置和提到的日志:
- 应用程序.yml
凭据在调用服务帐户 json 的环境变量“GOOGLE_APPLICATION_CREDENTIALS”中设置
- 日志:
此外,以防万一它有帮助,我添加我的pom.xml
:
sql-server - 尝试通过代理使用 SSMS 访问 Cloud SQL 上的 SQL Server 实例时如何修复连接错误
我正在尝试做的事情
我正在尝试使用 SQL Server Management Studio (SSMS) 在 Cloud SQL (GCP) 上管理我的 SQL Server 实例。
我做了什么
我按照 Google Cloud 文档(此处)中的步骤操作。
我按照步骤 1-5(下面的精简版):
- 安装 Cloud SQL
- 跑
gcloud init
- 运行
gcloud auth login
(PS 我是项目级别的所有者) - 下载并安装 Google Cloud SQL 代理(按照此处的说明)
- 启用 Cloud SQL 管理 API
- 安装代理客户端(对我来说是 Windows PC,x64 - 将文件重命名为
cloud_sql_proxy.exe
) - 确定代理身份验证方法(根据此处的文档)。我选择了 Cloud SDK,因为无论如何我都需要在步骤 1 中下载它
- 跳过(不使用服务帐户身份验证)
- 确定代理实例规范(根据此处的文档)。使用代理调用方法上指定的实例。
- 我只有私有 IP,所以默认情况下它会选择正确的 IP(根据此处的文档)
- 与第 5 步(如下)相同 5 。启动代理。我运行(在 cmd 中)
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:1433
(显然用<INSTANCE_CONNECTION_NAME>
我的实例名称替换了该部分。
在这一点上,一切似乎都在工作:
现在按照此处的说明,我尝试使用 SSMS(127.0.0.1
SQL Server 身份验证、我sqlserver
的超级棒密码)、Connect 连接到数据库实例。
我的问题
我现在在 Cloud SDK 窗口中收到以下错误消息:
(它重复了几次)
在 SSMS 中,我收到以下提示:
我的问题
如何解决此问题并正确连接到我的数据库实例?
django - 使用云运行在 django 中通过云代理连接到云 sql 实例时出错
我正在尝试为云运行中的 django 项目连接到 cloud-sql,该项目正在通过生产中的云运行进行部署。然而 Django 给我一个错误说
我在settings.py中的数据库设置如下
我看到一种可能的解决方案是将云代理连接重定向到 127.0.0.1:3306 但为此我必须在 docker 容器上安装云代理并进行身份验证,对吗?这不是云运行为我们提供的没有任何麻烦的东西吗?有没有在容器上安装云代理和重定向的情况下连接到云 sql 实例?
android - 通过 JDBC 使用 Compute Engine 连接到 Cloud SQL
我无法通过 Compute Engine 连接到我的数据库。
到目前为止我做过的事情:
- 设置我的计算引擎
- 将我的 Compute Engine 连接到我的 Cloud SQL
- 在我的 Compute Engine 上安装并运行 Cloud Proxy
- 在我的 libs 文件夹中包含 JDBC Jar 文件
- 创建了 JDBC 连接字符串
"jdbc:mysql:///?cloudSqlInstance=&socketFactory=com.google.cloud.sql.mysql.SocketFactory;user=&password=";
- 添加了对我的 Gradle 文件的依赖项
-实现文件树(目录:'libs',包括:['*.jar'])
-实现'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.1.0'
这是堆栈跟踪:
W/System.err:java.sql.SQLNonTransientConnectionException:无法连接到 localhost:3,306 上的 MySQL 服务器。W/System.err:确保在您尝试连接的机器/端口上运行着 MySQL 服务器,并且运行该软件的机器能够连接到该主机/端口(即没有防火墙)。还要确保没有使用 --skip-networking 标志启动服务器。在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) 在 com.mysql.cj.jdbc .exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) W/System.err: at com.mysql.cj.jdbc.exceptions .SQLError.createSQLException(SQLError.java:73) 在 com.mysql.cj.jdbc.ConnectionImpl。ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) W/System.err: at java.lang.Thread.run(Thread.java:764) 原因:java.lang.NullPointerException: 尝试调用虚拟方法 'com. mysql.cj.protocol.SocketConnection com.mysql.cj.protocol.a.NativeProtocol.getSocketConnection()' 在 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 的空对象引用上。 mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) W/System.err: at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer: 跳过58帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB lang.Thread.run(Thread.java:764) 引起:java.lang.NullPointerException:尝试调用虚拟方法'com.mysql.cj.protocol.SocketConnection com.mysql.cj.protocol.a.NativeProtocol.getSocketConnection( )' 在 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 处的空对象引用上 com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) W/System.err : at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB lang.Thread.run(Thread.java:764) 引起:java.lang.NullPointerException:尝试调用虚拟方法'com.mysql.cj.protocol.SocketConnection com.mysql.cj.protocol.a.NativeProtocol.getSocketConnection( )' 在 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 处的空对象引用上 com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) W/System.err : at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB mysql.cj.protocol.a.NativeProtocol.getSocketConnection()' 在 com.mysql.cj.jdbc.ConnectionImpl.createNewIO 的 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 的空对象引用上(ConnectionImpl.java:826) W/System.err: at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB mysql.cj.protocol.a.NativeProtocol.getSocketConnection()' 在 com.mysql.cj.jdbc.ConnectionImpl.createNewIO 的 com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:980) 的空对象引用上(ConnectionImpl.java:826) W/System.err: at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB java:456) ... 12 更多 I/Choreographer:跳过 58 帧!应用程序可能在其主线程上做了太多工作。I/zygote:做全码缓存收集,码=123KB,数据=111KB 码缓存收集后,码=117KB,数据=78KB
kubernetes - 用作 Sidecar 时,SQL Cloud Proxy 不断重启连接
当我将 SQL 代理用作我在 Kubernetes 集群上部署的 sidecar 时,我遇到了一个奇怪的问题。总而言之,它会不断关闭客户端的连接,然后立即打开一个新连接,而不会导致任何致命异常!
我的部署
我有一个具有 2 个图像的部署对象,(1) Spring Boot App和 (2) SQL Cloud Proxy。我使用 SQL 代理从不同的 GCP 项目访问数据库(我有我的理由)。此部署中对公开服务的所有请求都可以正常工作,但我在日志中不断收到错误消息,指出正在从 SQL 代理关闭连接并重新建立!
我的部署 YAML 文件
我在找什么?
我正在尝试找到一种方法来解决每天数千次重新启动连接的问题!如果我可以强制代理不重置连接并使其保持活动状态,我做了一些研究,但我一无所获!
我会很感激你们的帮助!
postgresql - GCP IAM 访问 GCP 中的 postgres SQL
我正在尝试使用带有 IAM 用户的 pgadmin 工具连接到 GCP 云 sql(postgres),但无法登录。我已通过 Cloud sql 代理连接,但在尝试登录时验证失败。
除了以下消息之外,GCP 日志上没有太多内容:2021-12-29 11:11:04.854 UTC [1723]:[2-1] db=postgres,user= @ .com 详细信息:调用者没有权限连接匹配 pg_hba .conf 第 20 行:“本地所有 +cloudsqliamuser cloudsql-iam-user”
将这组角色添加到 IAM 用户
这是成功运行云 sql 代理:
这是pg连接终端错误
在整个设置中,我遵循了 GCP 的这份文档:https ://cloud.google.com/sql/docs/postgres/authentication