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

.NET 6 WebAPI无法连接Docker中MySQL数据库的问题求助

解决.NET 6 WebAPI无法连接Docker中MySQL容器的问题

以下是具体排查和解决方向:

1. 修正MySQL容器的绑定地址配置

Docker中的MySQL默认可能仅绑定容器内部的127.0.0.1,导致主机的.NET程序无法通过映射端口访问。需确保MySQL允许所有IP连接:

  • 在Docker Compose的MySQL服务配置中,添加命令参数修改绑定地址:
    services:
      mysql:
        image: mysql:latest
        command: --bind-address=0.0.0.0
        ports:
          - "3307:3306"
        # 其余配置如环境变量、挂载卷等保持不变
    

2. 调整.NET连接字符串格式

确认连接字符串的语法正确性,若容器MySQL未配置SSL,需显式关闭SSL模式:

server=localhost;port=3307;user=root;password=******;database=armedia;SslMode=none;

也可尝试合并主机与端口的写法:

server=localhost:3307;user=root;password=******;database=armedia;SslMode=none;

3. 升级.NET项目的MySQL驱动

确保使用最新版的MySqlConnector NuGet包(替代旧版MySql.Data),旧驱动可能存在Docker环境兼容性问题:

Install-Package MySqlConnector -Version latest

4. 检查容器内MySQL用户权限

确认连接用的root用户拥有从外部主机连接的权限,进入MySQL容器执行SQL:

GRANT ALL PRIVILEGES ON armedia.* TO 'root'@'%' IDENTIFIED BY '******';
FLUSH PRIVILEGES;

5. 排查主机端口与防火墙

  • 验证3307端口未被其他进程占用:
    sudo lsof -i :3307
    
  • 临时关闭Linux Mint防火墙测试连通性:
    sudo ufw disable
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:55:35