这个问题和类似的问题不能解决我的问题。
我正试图将我的应用程序连接到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。