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

ASP.NET Core连接MySQL执行Update-Database提示port关键字不支持如何解决

问题根因

报错堆栈中出现Microsoft.EntityFrameworkCore.SqlServer相关类,说明你当前项目的EF Core数据库提供程序配置为SQL Server,SQL Server的连接字符串不支持Port关键字,只有MySQL专属的EF Core提供程序才能识别Port、SslMode这类MySQL连接参数,所以触发参数不支持的异常。
另外ASP.NET Core默认不使用web.config作为配置文件,旧教程中修改web.config的方案不适用于你的项目,无需查找该文件。

解决步骤

  • 首先安装MySQL对应的EF Core提供程序,推荐使用维护状态更好的Pomelo.EntityFrameworkCore.MySql包,你可以在NuGet包管理器中搜索安装,也可以直接在包管理器控制台执行命令:
    Install-Package Pomelo.EntityFrameworkCore.MySql
  • 修改DbContext注册代码:
    如果是.NET 6及以上版本,修改Program.cs中的注册逻辑,把原来的UseSqlServer改成UseMySql,示例如下:
    var connectionString = builder.Configuration.GetConnectionString("AuthDBContextConnection");
    builder.Services.AddDbContext<AuthDBContext>(options =>
        options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)));
    
    如果是.NET 5及以下版本,修改Startup.cs中ConfigureServices方法里的对应注册逻辑即可。
  • 清理连接字符串中的冗余参数:Trusted_Connection=True、MultipleActiveResultSets=true是SQL Server专属参数,MySQL不识别,可以直接删除,修正后的连接字符串参考:
    "AuthDBContextConnection": "Server=localhost;Port=xxxx;Database=xxxx;User ID = xxx;Password=xxxx;Pooling=false;SslMode=none;convert zero datetime=True;"
    
  • 重新在包管理器控制台执行Update-Database即可正常执行迁移。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:06:05