Update-Database - (localdb) MSSQLLocalDB出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Update-Database - (localdb) MSSQLLocalDB出错相关的知识,希望对你有一定的参考价值。

运行Add-Migration后运行Update-Database时遇到以下问题:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。指定的LocalDB实例名称无效。)

Sql本地DB:

enter image description here

在Startup.cs中:

 // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        //services.AddDbContext<MyContext>(options => options.UseSqlServer(Configuration["ConnectionStrings = DefaultConnection"]));
        //var connection = @"Server=(localdb)mssqllocaldb;Database=EFGetStarted.AspNetCore.NewDb;Trusted_Connection=True;ConnectRetryCount=0";
        //var connection =    @"Data Source = (localdb)MSSQLLocalDB; Database = Ecommerce2DB; Integrated Security = True; Connect Timeout = 30; Encrypt = False; TrustServerCertificate = False; ApplicationIntent = ReadWrite; MultiSubnetFailover = False";
        var connection = @"Data Source = (localdb)MSSQLLocalDB; Initial Catalog = Ecommerce2DB; Integrated Security = True; Connect Timeout = 30; Encrypt = False; TrustServerCertificate = False; ApplicationIntent = ReadWrite; MultiSubnetFailover = False";
            //                      Data Source = (localdb)MSSQLLocalDB; Initial Catalog = master; Integrated Security = True; Connect Timeout = 30; Encrypt = False; TrustServerCertificate = False; ApplicationIntent = ReadWrite; MultiSubnetFailover = False
        services.AddDbContext<MyContext>(options => options.UseSqlServer(connection));

    }
答案

此错误消息通知您无法连接到MSSQL Server,应用程序将无法连接到数据库。可能的原因和消除步骤描述如下:

1)MSSQL Server未启动。启动它将允许您在可用的MSSQL服务器的下拉列表中查看您的MSSQL服务器/实例。

a)转到“开始”菜单 - >“控制面板” - >“管理工具” - >“服务”。

b)在服务列表中找到SQL Server(实例名称,默认为。)并检查其状态,它必须是Started(如果它未启动,则右键单击SQL Server并从上下文菜单中选择Start) 。

2)防火墙阻塞端口1433(用于连接的MSSQL标准端口)。可以按照以下步骤禁用它:

a)转到“开始”菜单 - >“控制面板” - >“管理工具” - >“服务”。

b)查找防火墙服务,必须禁用它(如果不是,则右键单击该服务并从上下文菜单中选择停止)。

注意:有关此内容的更多信息,请访问Microsoft官方网站:http://msdn.microsoft.com/en-us/library/cc646023.aspx

3)MSSQL协议禁用TCP / IP协议。要启用它,请参阅以下步骤:

a)在“开始”菜单中导航到SQL Server配置管理器。

b)在SQL Server配置管理器中指定TCP / IP协议的设置。

c)重新启动计算机。

注意:有关此内容的更多信息,请访问Microsoft官方网站:http://msdn.microsoft.com/en-us/library/bb909712%28v=vs.90%29.aspx

4)确保您的数据库引擎配置为接受远程连接(如果您使用的是集中式数据库):

a)打开SQL Server Management Studio。 b)右键单击SQL Server实例 - >属性 - >连接 - >选中允许远程连接到此服务器框。 c)转到“常规”部分,检查“名称”字段中指定的SQL Server名称。

5)如果您使用的是命名SQL Server实例,请确保在连接字符串中使用该实例名称。通常,指定数据库服务器所需的格式是machinename instancename。

6)确保您的登录帐户对登录期间使用的数据库具有访问权限。

替代方法:如果仍然无法建立任何连接,您可能希望在服务器上创建一个SQL帐户,在相关数据库上创建相应的SQL用户,并使用此用户名/密码登录数据连接到SQL Server。

以上是关于Update-Database - (localdb) MSSQLLocalDB出错的主要内容,如果未能解决你的问题,请参考以下文章

在通过“update-database”命令更新数据库后,有啥方法可以恢复 Ef Core - Database Migration [重复]

如何更改Update-Database ef迁移的连接字符串?

运行 update-database 导致错误:“发生文件激活错误”

切换分支时如何解决Update-Database问题?

Update-Database 命令在建立与服务器的连接时出错(代码优先迁移)

无法将“Update-Database”项识别为 cmdlet函数脚本文件或可运行程序的名称的问题