Docker compose的通信链路故障



这个问题和类似的问题不能解决我的问题。

我正试图将我的应用程序连接到MySQL服务器,但没有成功。我似乎找不到导致这次连接失败的错误。

这是完整的错误日志:https://pastebin.com/t54pVb58

这是我的码头组合。yml:

version: '3.8'
services:
mysql-ricette:
container_name: mysqlRicette
image: mysql
volumes:
- ./mysql:/docker-entrypoint-initdb.d
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: ricette
MYSQL_USER: user
MYSQL_PASSWORD: password
ricette-service:
container_name: ricette
build: ./ricette
depends_on:
- consul
- mysql-ricette
- kafka
- zookeeper

这是我的申请。yml为ricette服务:https://pastebin.com/PNhF532g

这是我想保存在数据库中的实体:

@Entity 
@Data @NoArgsConstructor
public class RicettaCompleta {
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; 
private String autore; 
private String titolo; 
private String preparazione; 

public RicettaCompleta(String autore, String titolo, String preparazione) {
this(); 
this.autore = autore; 
this.titolo = titolo; 
this.preparazione = preparazione; 
}

}

我知道这个错误意味着数据源配置有问题。但我不知道是什么。是的,mysql-ricette数据库实际上正在运行。

请帮我解决我一直遇到的这个错误。

您需要将mysql-ricette链接到ricette服务。更新后的yml文件如下所示。也可以在java代码中替换您的mysqlurl,即您的application.yml或application.properties,无论您使用jdbc:mysql://mysql-ricette:3306/ricette?serverTimezone=UTC

version: '3.8'
services:
mysql-ricette:
container_name: mysqlRicette
image: mysql
volumes:
- ./mysql:/docker-entrypoint-initdb.d
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: ricette
MYSQL_USER: user
MYSQL_PASSWORD: password
ricette-service:
container_name: ricette
build: ./ricette
depends_on:
- consul
- mysql-ricette
- kafka
- zookeeper
links: 
- mysql-ricette

com.mysql.jdbc.Driver更改为com.mysql.cj.jdbc.Driver,将mysql更改为mysql:5.7就成功了。我理解第一个更改,因为驱动程序已弃用,但我没有得到mysql。

相关内容

  • 没有找到相关文章

最新更新