为了账号安全,请及时绑定邮箱和手机立即绑定

Docker compose for mysql 和 spring 应用程序拒绝访问

Docker compose for mysql 和 spring 应用程序拒绝访问

忽然笑 2021-10-20 14:29:29
我有一个用于MySQL + Spring boot应用程序的 docker compose :这是我的docker-compose.yaml样子version: "3.3"services:  docker-mysql:    image: mysql:5.7    environment:      MYSQL_ROOT_PASSWORD: 'pass'      MYSQL_DATABASE: 'test'    volumes:      - /var/lib/mysql    ports:      - 3306:3306  my-app:    build: .    depends_on:      - docker-mysql    ports:      - 8080:8080restart: on-failure这是我的 Dockerfile:FROM openjdk:8EXPOSE 8080ADD /target/app-0.0.1.jar app.jarENTRYPOINT ["java","-jar","app.jar"]这是application.properties我的应用程序的:spring.jpa.database=MYSQLspring.jpa.show-sql=truespring.datasource.url=jdbc:mysql://docker-mysql:3306/test?characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=rootspring.jpa.hibernate.ddl-auto=nonespring.datasource.driverClassName=com.mysql.jdbc.Driver但是当我运行容器时,docker-compose up应用程序遇到访问被拒绝:Access denied for user 'root'@'172.20.0.3' (using password: NO)在日志文件中,mysql用空密码创建![Warning] root@localhost is created with an empty password !
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

您应该更改以下属性以使用您在 docker-mysql 中定义的用户和传递。


spring.datasource.password=pass

此外,links在您的 spring-boot 应用程序中添加该选项。


depends_on:

  - docker-mysql

links:

  - docker-mysql

我认为这并不重要,但文档中的示例使用不带引号的密码。如果以上失败,请尝试。


查看完整回答
反对 回复 2021-10-20
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您需要使用 root 用户访问 mysql,因此使用 mysql root 用户运行以下命令:


GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.20.0.3'

    IDENTIFIED BY 'pass' 

    WITH GRANT OPTION;

FLUSH PRIVILEGES;

请检查!


查看完整回答
反对 回复 2021-10-20
  • 2 回答
  • 0 关注
  • 206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信