gpt4 book ai didi

spring-boot - 具有Spring Boot的Docker镜像无法连接到CloudSQL

转载 作者:行者123 更新时间:2023-12-02 21:06:06 25 4
gpt4 key购买 nike

我想使用Spring Boot创建Web服务,将其添加到Docker镜像,连接到Cloud sql,然后在Compute Engine上运行。

我正在使用docker compose组合项目和云SQL代理镜像的镜像。但是,无论我给它提供什么jdbc URL都无法连接。现在,我正在本地尝试所有这些

我尝试了以下网址:

1. spring.datasource.url=jdbc:mysql:///cloudsql/myinstancename/${MYSQL_DATABASE}
2. spring.datasource.url=jdbc:mysql://cloudsql/myinstancename/${MYSQL_DATABASE}
3. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/${MYSQL_DATABASE}

docker-compose.yml
version: '3'

services:
app:
image: appname

volumes:
- cloudsql:/cloudsql
depends_on:
- sql_proxy
ports:
- 8080:8080

# SQL proxy is built correctly, says
# Listening on /cloudsql/myinstancename for myinstancename
# sql_proxy_1 | Ready for new connections

sql_proxy:
environment:
- MYSQL_ROOT_PASSWORD=password!#
- MYSQL_DATABASE=appname
- MYSQL_USER=root
image: gcr.io/cloudsql-docker/gce-proxy:1.12
command:
/cloud_sql_proxy
-dir=/cloudsql
-instances=myinstancename # (I have added this correctly)
-credential_file=/root/keys/keyfile.json
volumes:
- E:\mykey.json:/root/keys/keyfile.json:ro
- cloudsql:/cloudsql
ports:
- 3306:3306


volumes:
# This empty property initializes a named volume.
cloudsql:

application.properties:
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql:///cloudsql/myinstancename/${MYSQL_DATABASE}
spring.datasource.username=${MYSQL_USER}
spring.datasource.password=${MYSQL_ROOT_PASSWORD}
spring.security.enabled=false
security.ignored=/**

最佳答案

当前,您正在以sidecar模式使用Cloud SQL代理,该模式在/cloudsql/<INSTANCE_CONNECTION_NAME>中安装了可用于连接到Cloud SQL实例的unix套接字。不幸的是,大多数Java JDBC驱动程序不支持unix套接字。您可以切换Cloud SQL代理以提供tcp套接字,而不是类似以下内容的文件:"-instances=<INSTANCE_CONNECTION_NAME>=tcp:3306"

另外,您可以使用Cloud SQL JDBC Socket Factory。这是一个Java库,可让您创建到Cloud SQL实例的经过身份验证的连接,但不需要使用代理。

关于spring-boot - 具有Spring Boot的Docker镜像无法连接到CloudSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57962815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com