当前位置: 首页 > 知识库问答 >
问题:

无法在Docker中使用Spring连接到MySQL

汪弘光
2023-03-14

我在docker容器中运行了mysql:

docker run -it --name mysql-db -e MYSQL_ROOT_PASSWORD=root \
    -e MYSQL_DATABASE=db -e MYSQL_USER=root -e MYSQL_PASSWORD=root mysql:latest
docker start mysql-db

我想在另一个docker容器中运行我的Spring Boot应用程序(使用Maven):

docker build -t java-app .
docker run -it --name java-app --link mysql-db:mysql -p 8080:8080 java-app
docker start java-app
FROM java:8
ADD target/demo-0.0.1-SNAPSHOT.jar /usr/share/demo/demo.jar 
ENTRYPOINT ["/usr/bin/java", "-jar", "/usr/share/demo/demo.jar"]  
spring:
    # General JPA properties
    jpa:
        show-sql: false
        database-platform: org.hibernate.dialect.MySQL57Dialect
        # Hibernate Specific properties
        hibernate:
            ddl-auto: create
        properties:
            hibernate:
                format_sql: false
    # DataSource configuration
    datasource:
        url: jdbc:mysql://mysql:3306/db
        username: root
        password: root

MySQL日志有关于-skip-name-resolve mode的警告。

共有1个答案

萧玮
2023-03-14

看来你的数据库根本不工作。您可以通过在第二个终端中运行Docker psDocker exec-it mysql-db mysql-u root-proot db来验证这一点。它很可能会失败。原因是您使用的-e mysql_user=root标志。这个docker映像使用您提供的密码创建root用户,所以当您想再次创建root用户时,它会失败并关闭容器。只需将其更改为-e mysql_user=myuser,它就应该可以工作了。

 类似资料:
  • 我的Elasticsearch docker撰写文件就是这样 我有一个spring启动应用程序,application.properties是 然而,我得到了错误 问题:1)如何从外部连接到带Spring靴的elasticsearch?2) 如果docker将elastic和springboot应用程序组合在一起,它们将位于同一个网络上。要连接到弹性搜索,我应该对spring.data.elast

  • 我有一个连接到mysql数据库的Spring Boot应用程序。如果我以经典的方式在本地运行它,它工作得很好。但当我尝试dockerise时,它-数据库成功启动,但应用程序却看不到数据库。 我的DockerFile: 我执行的内容: 首先,我构建我的service_img 然后执行docker-compose up。在日志中,我看到数据库启动日志,然后是应用程序启动日志,然后是错误: 有什么建议吗

  • 并运行相同的命令,它可以工作。 我如何才能从容器外部登录到MySQL服务器而不会得到任何错误?

  • 我创建了一个docker compose文件,将MySql连接到SpringBoot应用程序。但我得到了这个错误: 我尝试在本地机器中使用docker默认ip运行Spring Boot应用程序,同时在这个docker-compose.yml文件中只运行MySql容器,结果运行得非常好。但当我尝试docker编写文件时。我知道这个错误。

  • 我试图运行在通过包含文件()在虚拟机中,但我无法连接到,并且在尝试连接失败时收到的消息如下所示: 如果您注意到,docker能够连接到docker compose文件中提到的其他服务,其中一个是前两行显示的。在docker compose文件中调用kibana的命令如下: 如果我做了,它会给我以下信息: 在这里发布这个问题之前,我在google上广泛搜索了这个问题,并尝试了人们对这个问题的各种建议

  • 您似乎试图通过本机驱动程序端口上的HTTP访问MongoDB。 而且日志显示我的mongodb是健康的。我想是我试图通过浏览器访问的最后一行。 2017-01-25T21:11:13.509+0000 I JOURNAL[initandlisten]JOURNAL dir=/data/db/Journal2017-01-25T21:11:13.509+0000 I JOURNAL[initandl