【问题标题】:Sql difference between localhost and (LocalDb)/MSSQLLocalDBlocalhost和(LocalDb)/MSSQLLocalDB的sql区别
【发布时间】:2017-03-07 01:20:29
【问题描述】:

我注意到我使用连接字符串来迁移身份数据库。不管我做了什么,我看了又看,但我找不到数据库。所以我重新评估了我的连接字符串,发现它们不太相似:

var connectionString = @"Server=localhost;Database=MyDatabase;Trusted_Connection=True;"
var connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;database=gritzy.IdentityServer4.dbo;trusted_connection=yes;";

一个只是将服务器指定为 localhost,另一个根本没有指定服务器。

我的印象是 localhost 只会使用默认的 MSSQLSERVER 实例名称。

数据源和服务器有什么区别?

【问题讨论】:

  • 如果您将Provider= 包含在您的连接字符串中,您将会有更好的运气

标签: sql-server connection-string localdb


【解决方案1】:

“数据源”和“服务器”是同义词,所以没有区别。

localhost 指定您机器上的默认 SQL Server 实例。

(LocalDb)\MSSQLLocalDB 是您机器上的默认 LocalDB 实例

【讨论】:

  • 请问您所说的 sql server 实例是什么意思?对于同一个 sql server,我们可以有许多不同名称的实例,例如 localhost 、 localhost1 、 localhost2 ?
  • 没有实例名称由主机名\实例名组成 - 比如 localhost\MSSQLSERVER 或 localhost\SQLEXPRESS
  • 谢谢 .. 我也需要 (LocalDb)\MSSQLLocalDB .... 当我在其中键入 myMachineName 时连接到的那个是什么?
【解决方案2】:

如果你同时安装了 SQLExpress(SqlLocalDB) 和 SqlServer,你会很困惑。

你可能见过这样的连接字符串:

sqlserver:
var connectionString = @"Server=localhost;Database=MyDatabase;Trusted_Connection=True;"

sqlExpress:
var connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;database=gritzy.IdentityServer4.dbo;trusted_connection=yes;";

第一个是你用来连接 SQLServer 的连接字符串,它要求你在安装 SqlServer 时指定根文件夹。默认值为“C:\Program Files\Microsoft SqlServer”,但您可以将其放在任何您想要的位置。例如,如果我将根指定为“C:\Source\DB”,那么它就是“C:\source\DB\MSSQL15.MSSQLLOCALDB\MSSQL\DATA”。这里的重点是 SQLServer 实例是机器范围的。每台服务器/机器一个实例。

第二个是SQLExpress的连接字符串,DB文件通常存储在每个用户的AppData文件夹中,例如“C:\Users\\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\ MSSQLLocalDB”。请注意,每个登录到同一台机器的用户都可以拥有自己的数据文件,因为每个用户都有自己的 appData 文件夹。

如果您同时安装了 SQLExpress/SqlLocalDB 和 SqlServer,请打开 SSMS(管理工作室),您可以同时连接到两者,您会发现它们有不同的数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-27
    • 2021-01-17
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多