You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过HeidiSQL访问Docker部署的本地MySQL数据库

解决Docker部署MySQL 8.0与HeidiSQL连接失败问题

1. 检查端口映射配置

确保docker-compose.yml中已将MySQL容器的3306端口映射到宿主机端口(默认3306,需确认未被占用):

services:
  mysql:
    image: mysql:8.0
    ports:
      - "3306:3306" # 格式:宿主机端口:容器端口

修改后重启容器:

docker-compose down && docker-compose up -d

2. 配置MySQL用户远程访问权限

MySQL 8.0默认限制非本地访问,需为目标用户开放%(任意主机)访问权限:

  • 进入容器终端:
docker exec -it [容器ID/名称] mysql -uroot -p
  • 登录后执行授权语句(替换root和你的密码为实际配置):
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

3. 修正HeidiSQL连接参数

新建连接时严格配置以下参数:

  • 网络类型:选择MySQL (TCP/IP)
  • 主机名/IP:填写127.0.0.1(避免Windows下localhost走命名管道而非TCP)
  • 端口:填写映射的宿主机端口(默认3306)
  • 用户名/密码:填写docker-compose配置的MySQL账号密码
  • 数据库:留空即可,登录后再选择或创建

4. 排查Windows防火墙干扰

临时关闭Windows防火墙测试连接,若能成功则为防火墙拦截,需添加HeidiSQL的网络访问允许规则。

5. 验证容器运行状态与日志

  • 确认容器正常运行:
docker-compose ps
  • 查看MySQL日志定位错误:
docker-compose logs mysql

重点搜索Access denied(权限问题)、bind(端口占用)类关键词。

内容的提问来源于stack exchange,提问作者Windgate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:03:11