首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在码头上用Spring连接MySQL

问不能在码头上用Spring连接MySQL
EN

Stack Overflow用户
提问于 2017-12-14 09:50:59
回答 1查看 2.6K关注 0票数 0

我让mysql在一个码头容器中运行:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
docker build -t java-app .
docker run -it --name java-app --link mysql-db:mysql -p 8080:8080 java-app
docker start java-app

但我有个例外:

由: java.net.ConnectException:连接拒绝(连接拒绝)引起

我的Dockerfile:

代码语言:javascript
复制
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"]  

我的application.yml:

代码语言:javascript
复制
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的警告。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-14 20:21:04

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47810349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档