Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java (Docker+;SpringBoot+;Mysql)Mysql连接被拒绝_Java_Mysql_Spring_Spring Boot_Docker - Fatal编程技术网

Java (Docker+;SpringBoot+;Mysql)Mysql连接被拒绝

Java (Docker+;SpringBoot+;Mysql)Mysql连接被拒绝,java,mysql,spring,spring-boot,docker,Java,Mysql,Spring,Spring Boot,Docker,问题描述 Spring Boot(app)容器无法连接到“mysql”容器 问题输出 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接。尝试重新连接3次。放弃 应用程序属性 spring.datasource.username = root spring.datasource.url = jdbc:mysql://mysql:3306/fms?autoReconnect=t

问题描述

Spring Boot(app)容器无法连接到“mysql”容器

问题输出

原因:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接。尝试重新连接3次。放弃

应用程序属性

spring.datasource.username = root
spring.datasource.url = jdbc:mysql://mysql:3306/fms?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
spring.datasource.password = manager@123
docker compose.yml

version: '3.7'
services:  
    mysql:
        image: mysql:latest
        restart: always
        command: --default-authentication-plugin=mysql_native_password
        ports:
            - "33061:3306"
        networks:
            - spring-boot-mysql-network
        environment:
            MYSQL_DATABASE: fms
            MYSQL_ROOT_PASSWORD: manager@123
        volumes:
            - ./database_storage:/docker-entrypoint-initdb.d

    app:
        build:
            context: .
            dockerfile: app.Dockerfile
        ports: 
            - "8091:8080"
        networks:
            - spring-boot-mysql-network
        depends_on: 
            - mysql

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        depends_on: 
            - mysql
        environment: 
            PMA_HOST: database
            PMA_PORT: 3306
        ports:
            - "9091:80"

networks:
    spring-boot-mysql-network:
        driver: bridge

我觉得你的设置正确。但是,您使用的是MySQL的最新docker映像(撰写本文时为8.0.x)。因此,您得到的异常表明您的MySQL连接器和MySQL服务器版本之间存在兼容性问题。您在Spring Boot应用程序中使用的是哪个版本?您需要更新连接器或降级MySQL docker映像版本。

您的设置在我看来是正确的。但是,您使用的是MySQL的最新docker映像(撰写本文时为8.0.x)。因此,您得到的异常表明您的MySQL连接器和MySQL服务器版本之间存在兼容性问题。您在Spring Boot应用程序中使用的是哪个版本?您需要更新连接器或降级MySQL docker映像版本。

您是否可以尝试将MySQL连接器版本更新为
MySQL-connector-java-8.0.11
您是否可以尝试将MySQL连接器版本更新为
MySQL-connector-java-8.0.11
我犯了一个愚蠢的错误

我正在更新application.property文件和docker compose --但是我从来没有重新打包war文件。所以我在读我的旧war文件,从而读我的旧属性文件


我犯了一个愚蠢的错误

我正在更新application.property文件和docker compose --但是我从来没有重新打包war文件。所以我在读我的旧war文件,从而读我的旧属性文件


请尝试使用
“3306:3306”
而不是
“33061:3306”
或使用
33061
作为
jdbc上的端口号:mysql://mysql:33061.......
谢谢你的回复:)但我已经尝试了你的两种解决方案。它仍然说“连接被拒绝”MySQL的容器启动了吗?MySQL是在容器中启动的吗?有防火墙挡道吗?是的。docker ps显示状态(最多3分钟)我甚至可以通过(mysql-h 192.168.32.2-P 3306-u root-P)从主机上使用其ip连接“mysql容器”,尝试
“3306:3306”
,而不是
“33061:3306”
或使用
33061
作为
jdbc上的端口号:mysql://mysql:33061.......
谢谢你的回复:)但我已经尝试了你的两种解决方案。它仍然说“连接被拒绝”MySQL的容器启动了吗?MySQL是在容器中启动的吗?有防火墙挡道吗?是的。docker ps显示状态(最多3分钟)我甚至可以通过(mysql-h 192.168.32.2-P 3306-u root-P)从主机使用其ip连接“mysql容器”。谢谢你的回复:)我使用了5.1.45版本的mysql连接器。我刚刚尝试用5.7替换“最新”。但是没有成功。你能提出进一步的建议吗?@Dipesh对不起,我提供了错误的链接。我指的是MySQL Connector/J的最新版本,即
8.0.19
(我现在修复了链接)。MySQL docker版本还可以,您可以将其保留在
最新版本
,但如果您还设置了确切的docker版本,例如
MySQL:8.0
,则会更好。即使使用MySQL:8.0和connector:8.0.19,连接也会被拒绝:(@Dipesh您能提供整个异常日志吗?如果您已经设置了休眠设置,也请提供您的休眠设置。谢谢您的回复:)我使用了5.1.45版本的MYSQL Connector。我刚刚尝试将“最新版本”替换为5.7。但是没有成功。你能提出进一步的建议吗?@Dipesh抱歉,我提供了错误的链接。我指的是MYSQL Connector/J的最新版本,即
8.0.19
(我现在修复了链接).MySQL docker版本还可以,您可以将其保留在
最新版本
,但如果您还设置了确切的docker版本,例如
MySQL:8.0
,则会更好。即使使用MySQL:8.0和connector:8.0.19,连接也会被拒绝:(@Dipesh你能提供整个异常日志吗?如果你设置了hibernate,也请提供你的hibernate设置。谢谢回复。我已经按照你说的将mysql连接器更新到了8.0.11。但是仍然拒绝连接。谢谢回复。我已经按照你说的将mysql连接器更新到了8.0.11。但是仍然拒绝连接ko 100 kaude maare jaye.;是Insan ko 100 kaude maare jaye.。)