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
相关产品推荐
相关产品推荐

