当前位置: 首页 > 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.xdnf.cn/news/1407061.html

相关文章:

  • 自动驾驶中的传感器技术37——Lidar(12)
  • Ansible 临时命令与常用模块实操指南
  • 【人工智能99问】LLaMA中的RoPE是什么?(35/99)
  • Paimon——官网阅读:Spark 引擎
  • Spark内存管理
  • Nginx 502 Bad Gateway:从 upstream 日志到 FastCGI 超时复盘
  • 腾讯浑元最新技术:具有表征对齐的多模态扩散,用于高保真拟音音频生成
  • 【嵌入式DIY实例】-空中鼠标
  • LeetCode算法日记 - Day 27: 计算右侧小于当前元素的个数、翻转对
  • 高校心理教育辅导系统的设计与实现|基于SpringBoot高校心理教育辅导系统的设计与实现
  • USB虚拟化应用5:VirtualFIDO2 虚拟硬件安全密钥,智能卡,yubico,支持X,FB,GITHUB等各种网站双重认证,让你的账户登录绝对安全
  • 在集群级别应用 Pod 安全标准
  • opencv 梯度提取
  • 数据化管理是什么意思?企业该如何进行数据化管理
  • 《SVA断言系统学习之路》【01】即时断言概览
  • 北京博乐科技有限公司2025届程序技术类笔试题
  • 性能测试工具-SkyWalking
  • 元宇宙与旅游产业:虚实融合的文旅新体验
  • Python毕业设计推荐:基于Django+MySQL的养老社区服务管理系统
  • 从 WPF 到 Avalonia 的迁移系列实战篇4:控件模板与 TemplatedControl
  • UniApp 基础开发第一步:HBuilderX 安装与环境配置
  • 【AI智能体技术】如何学习多智能体系统知识并实现SOTA算法?
  • SDL3.0 学习随笔:其一
  • 自底向上了解CPU的运算
  • 嵌入式常见架构
  • 【MYSQL】从混乱到清晰:联合查询帮你打通数据孤岛
  • 算法:插入排序
  • 公益免费二级域名
  • 解锁Tensor Core性能:深入探索CUDA Warp矩阵操作
  • Junior Engineer浅谈CAS