【发布时间】:2021-06-10 04:22:18
【问题描述】:
我正在开发一个没有 docker 的 Spring boot 项目,我尝试连接一个 MYSQL 8 db。我通过 docker 创建了数据库。但是Spring boot项目无法访问mysql。有一个例外是“用户'root'@'172.21.0.1'的访问被拒绝(使用密码:YES)”。
但是我可以使用 mysql Workbench 访问它,并且可以访问 mysql 终端。
我尝试通过在 mysql 终端上运行这些命令来解决:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.21.0.1' WITH GRANT OPTION;
我该如何继续并解决这个问题?
docker-compose.yml:
version: '3.1'
services:
mysql:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 020688
MYSQL_DATABASE: ticketdb
MYSQL_PASSWORD: 020688
MYSQL_USER: root
ports:
- '3306:3306'
ticket-service.yml
spring:
application:
name: ticket-service
datasource:
url: jdbc:mysql://localhost:3306/ticketdb
username: root
password: 020688
jpa:
database: mysql
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
hibernate:
ddl-auto: update
例外:
Caused by: java.sql.SQLException: Access denied for user 'root'@'172.21.0.1' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.18.jar:8.0.18]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.18.jar:8.0.18]
【问题讨论】:
-
我不确定,但你有一个 mysql 容器已经在运行吗?也许这就是问题所在。在这里查看stackoverflow.com/a/59839180/10909386
-
是的,它正在运行,我可以在终端和 mysql workbench GUI 中访问它。例外是关于特权。如果是关于主机连接失败,可能是关于是否运行。
标签: mysql spring-boot docker privileges sqlexception