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

Docker Compose中ASP.NET应用无法登录MySQL容器问题排查

问题:Docker Compose部署ASP.NET应用连接MySQL自定义用户失败

环境与问题现象

  • 通过Docker Compose部署了两个服务:MySQL Server(5.7版本)、ASP.NET(.NET 7)应用
  • 使用自定义用户的连接字符串时,连接被拒绝:
    "Server=db;Database=projects;User=dbUser;Password=dbPassword"
    
    报错信息:
    web_1  | Unhandled exception. MySqlConnector.MySqlException (0x80004005): Access denied for user 'dbUser'@'%' to database 'projects'
    
    注意报错中的%,不确定是否和问题相关
  • 改用root用户的连接字符串则一切正常:
    "Server=db;Database=projects;User=root;Password=root"
    

Docker Compose配置

version: "3.9"
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: projects
      MYSQL_USER: dbUser
      MYSQL_PASSWORD: dbPassword
    ports:
    - 3306:3306
    expose:
      - 3306
    volumes:
      - dbdata:/var/lib/mysql
    restart: always
  web:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    depends_on:
      - db
    build: 
      context: sb.projects.admin.app/
      dockerfile: Dockerfile
    ports:
      - "8001:80"

volumes:
  dbdata:

ASP.NET项目SDK文件

<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
        <RootNamespace>WebApplication3</RootNamespace>
    </PropertyGroup>

    <ItemGroup>
      <Content Include="..\.dockerignore">
        <Link>.dockerignore</Link>
      </Content>
    </ItemGroup>

    <ItemGroup>
      <PackageReference Include="Autofac" Version="[7.0.0]" />
      <PackageReference Include="Autofac.Extensions.DependencyInjection" Version="[8.0.0]" />
      <PackageReference Include="Microsoft.EntityFrameworkCore" Version="[7.0.4]" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="[7.0.4]" />
      <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="[7.0.0]" />
      <PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="[6.5.0]" />
      <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="[6.5.0]" />
    </ItemGroup>

</Project>

请问我忽略了什么问题?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:34:58