mysql - Docker MySQL:通信链路故障
问题描述
我用数据库初始化创建了一个 mysql 的 docker 容器。现在我正在尝试将我的本地 Spring Boot 项目与容器中的那个 mysql 连接起来。它总是给我通信链路故障。
应用程序属性
spring.datasource.url = jdbc:mysql://localhost:3306/erp
spring.datasource.username = sa
spring.datasource.password = password
我也尝试使用容器名称更改 localhost 但仍然没有任何效果。
编辑:1
我已经克隆了这个存储库并尝试将这个项目与 docker mysql 连接起来。错误仍然相同。我相信我错过了一些东西。
解决方案
我解决了这个问题。在 docker VM 之外无法访问我的容器。所以我必须使用以下标志来--publish 6603:3306
. 端口 6603 是本地 PC 的端口,它将直接与运行 mysql 的容器端口 3306 连接。
docker run --name mysql-standalone -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=test -e MYSQL_USER=sa -e MYSQL_PASSWORD=password --publish 6603:3306 -d mysql:5.6
spring.datasource.url = jdbc:mysql://localhost:6603/test
推荐阅读
- r - geom_line 不显示线
- docker - 使用 Nginx 的子域从端点获取 JSON
- reactjs - 选中时如何只给MUI Switch边框样式?
- matlab - Matlab中的多变量积分问题
- ruby-on-rails - Heroku deplpy 失败并显示“..bin/bundle: line 11: require: command not found... Failed to install gems via Bundler.”
- git - package.json 中的 git 依赖项因“访问被拒绝(公钥)”而出错?
- ios - 如何以编程方式检查 iPhone/iPad 设备是否有原深感摄像头?
- windows - 如何在 Windows 上更改 Macroquad Rust 框架的任务栏图标和标题?
- c++ - 为 K 排序数组问题编译此代码时出错
- node.js - 当查询参数值中包含 URL 时,nginx 代理会抛出 403 禁止