.NET 9 Blazor项目执行Update-Database时MySQL连接报错排查
问题分析:EF Core Update-Database执行报错(数据库/服务器信息为空)
执行Update-Database命令时出现以下错误:
fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]
An error occurred using the connection to database '' on server ''
这个报错确实说明EF Core未能识别并解析出连接字符串中的数据库名称和服务器地址,错误信息里的空值就是直接体现。
已安装的NuGet包配置
<ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0" /> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" /> </ItemGroup>
appsettings.json中的连接字符串配置
"ConnectionStrings": { "DefaultConnection": "Server=x.x.x.x;Port=3306;Database=DB_Cours;User=UserCours;Password=12345678";Trusted_Connection=True;MultipleActiveResultSets=true },
问题排查与修复方案
连接字符串语法错误:
当前连接字符串存在格式错误——Password=12345678后面多了一个闭合双引号,导致后续的Trusted_Connection等参数被排除在连接字符串之外,EF Core只能读取到不完整的连接信息,进而无法识别服务器和数据库。
修正后的连接字符串:"ConnectionStrings": { "DefaultConnection": "Server=x.x.x.x;Port=3306;Database=DB_Cours;User=UserCours;Password=12345678;Trusted_Connection=True;MultipleActiveResultSets=true" },NuGet包版本不兼容:
.NET 9对应的Pomelo.EntityFrameworkCore.MySql版本应为9.x系列(目前为预览版),当前使用的8.0.2是适配.NET 8的版本,版本不匹配可能引发连接解析或其他运行时异常。
解决方式:- 升级Pomelo.EntityFrameworkCore.MySql到适配.NET 9的版本,例如
9.0.0-preview.1; - 若暂时无法使用预览版,可将项目降级到.NET 8,保持与Pomelo 8.0.2版本兼容。
- 升级Pomelo.EntityFrameworkCore.MySql到适配.NET 9的版本,例如
内容的提问来源于stack exchange,提问作者JBD
相关产品推荐
相关产品推荐

