spring - 春季启动中的docker mysql UnknownHostException
问题描述
我正在使用带有docker的spring boot。当我运行docker-compose.yaml文件时,它在 mysql 中显示以下错误:
Caused by: java.net.UnknownHostException: mysql
at java.base/java.net.InetAddress$CachedAddresses.get(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAllByName0(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(Unknown Source) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(Unknown Source) ~[na:na]
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:132) ~[mysql-connector-java-8.0.25.jar:8.0.25]
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63) ~[mysql-connector-java-8.0.25.jar:8.0.25]
我有如下用户:
在docker-compose.yaml文件中,我使用了下面的代码..
services: mysql: image: mysql:latest hostname: mysql restart: always ports: - 3306:3306 environment: MYSQL_DATABASE: accountdb MYSQL_USER: root MYSQL_PASSWORD: 123 MYSQL_ROOT_PASSWORD: 123 volumes: - db_data:/var/lib/mysql - ./src/main/resources/db/init.sql:/data/application/init.sql command: --init-file /data/application/init.sql my-service: image: myimage mem_limit: 700m ports: - "8081:8081" depends_on: - mysql
在 Spring 启动一个applicaiton.ym l 文件:
spring: application: name: account-opening datasource: url: jdbc:mysql://mysql:3306/accountdb?useSSL=false&serverTimezone=UTC username: root password: 123 jpa: hibernate: ddl-auto: create show-sql: true generate-ddl: true h2: console: enabled: true
我的代码有什么问题?请帮我
解决方案
每次使用卷时,都必须在 docker-compose.yml 文件中声明卷部分。另外,请仔细检查您的数据库初始化脚本是否可以像这样在 docker-compose 中使用。
推荐阅读
- excel - 根据列中的值选择行
- python - 在行 [NumPy 或 Tensorflow] 的索引值之前将行中的值设置为零
- angular - 根据 Observable 本身的数据填充 Observable 中的数据
- mysql - MYSQL 填充了一些行,但不支持
- swift - SwiftUI 表单中的奇怪选择器视图隐藏动画
- javascript - 我如何让这个 Firebase 数据在循环之外使用它?
- list - 函子映射函数的 Haskell 泛化
- java - 如何创建多个服务器,每个服务器都侦听不同的端口?
- regex - textreplace 谷歌应用脚本中的正则表达式不起作用
- python - 在 PyCharm 中连接到 SQLite3