当前位置: 首页 > news >正文

windows docker 中的mysql 无法被外部浏览器访问如何解决

这个问题在 Windows Docker 中非常常见。通常是由于网络配置、MySQL 配置或防火墙问题导致的。
必须确保在运行容器时,正确地将宿主机的端口映射到了容器的 3306 端口。

使用 docker ps 命令,查看 PORTS 这一列。

正确的情况:你应该看到类似 0.0.0.0:3306->3306/tcp 或 127.0.0.1:3306->3306/tcp 的映射。

0.0.0.0:3306 表示宿主机的所有IP地址的3306端口都映射到了容器。

127.0.0.1:3306 表示仅宿主机的本地回环地址(localhost)的3306端口映射到了容器。

错误的情况:如果只看到 3306/tcp,说明没有进行端口映射,外部自然无法访问。

解决方法:如果端口映射错误或没有映射,你需要重新创建一个容器。

停止并删除旧容器(注意:这会丢失数据,除非你做了数据卷映射):

bash
docker stop <容器名>
docker rm <容器名>
重新运行容器,确保使用 -p 参数正确映射端口:

bash
docker run -d --name mysql-container
-e MYSQL_ROOT_PASSWORD=your_password
-p 3306:3306 \ # 将宿主机的3306端口映射到容器的3306端口
mysql:tag
-p <主机端口>:<容器端口> 是关键参数。

如果你想用主机上的其他端口(比如主机的3307映射到容器的3306),可以写 -p 3307:3306,那么连接时就要用主机的3307端口。

快速测试连接

在 PowerShell 中运行以下命令测试连接(不需要安装完整MySQL客户端):

使用 telnet 测试端口是否开放
telnet 127.0.0.1 3307

或者使用 Test-NetConnection (PowerShell)
Test-NetConnection -ComputerName 127.0.0.1 -Port 3307

http://www.dtcms.com/a/359362.html

相关文章:

  • windows环境下安装dify到本地
  • 线程池、锁策略
  • Qt中UDP回显服务器和客户端
  • 第三十二天:数组
  • 如何保证redis和mysql的数据一致性
  • Spring Boot 3.x 微服务架构实战指南
  • 基于单片机停车场管理系统/车位管理/智慧停车系统
  • 大模型——xAI 发布 Grok Code Fast 1 编程模型,快、便宜、免费
  • 华为研发投资与管理实践(IPD)读书笔记
  • 第六章:透明度-Transparency《Unity Shaders and Effets Cookbook》
  • 机器视觉学习-day14-绘制图像轮廓
  • 基于Spring Cloud Sleuth与Zipkin的分布式链路追踪实战指南
  • 《深入剖析Kafka分布式消息队列架构奥秘》之Springboot集成Kafka
  • 【重学MySQL】九十四、MySQL请求到响应过程中字符集的变化
  • html添加水印
  • 馈电油耗讲解
  • 特殊符号在Html中的代码及常用标签格式的记录
  • Spring Task快速上手
  • 【多模态】使用LLM生成html图表
  • 【 复习SpringBoot 核心内容 | 配置优先级、Bean 管理与底层原理(起步依赖 + 自动配置) 】
  • 堆排序:高效稳定的大数据排序法
  • Kubernetes 服务发现与健康检查详解
  • 解锁GPU计算潜能:深入浅出CUDA架构与编程模型
  • ESP32学习笔记_Peripherals(5)——SPI主机通信
  • Asible——将文件部署到受管主机和管理复杂的Play和Playbook
  • 局域网中使用Nginx部署https前端和后端
  • Idea启动错误-java.lang.OutOfMemoryError:内存不足错误。
  • Polkadot - ELVES
  • 鸿蒙搭配前端开发:应用端与WEB端交互
  • SCARA 机器人工具标定方法