SQL Server 连接字符串 默认实例 vs. 命名实例
核心概念:默认实例 vs. 命名实例
SQL Server 允许在一台物理服务器上安装多个数据库服务,每个服务称为一个“实例”(Instance)。实例分为两种:
- 默认实例(Default Instance):
没有单独的实例名。
在安装时,如果你不指定实例名,或者明确选择“默认实例”,就会安装一个默认实例。
连接时,只需要指定服务器的主机名或IP地址即可。例如:192.168.1.100、MyServerPC。
一台服务器上最多只能有一个默认实例。
- 命名实例(Named Instance):
在安装时,你为其指定一个名称,例如 SQLEXPRESS、MSSQLSERVER2019、MYINSTANCE 等。
连接时,必须在服务器地址后面加上反斜杠 \ 和实例名。格式为:服务器名\实例名 或 IP地址\实例名。
例如:.\SQLEXPRESS、192.168.1.100\SQLEXPRESS、MyServerPC\MYINSTANCE。
一台服务器上可以安装多个命名实例。
-
- 为什么要加 \SQLEXPRESS?
因为 SQLEXPRESS 是一个典型的“命名实例”的名称。
- 为什么要加 \SQLEXPRESS?
当你从官网下载 SQL Server Express 版(免费版本)时,它的默认安装选项就是将自己安装为一个名为 SQLEXPRESS 的命名实例。所以,绝大多数人的电脑上安装的 Express 版都是这个实例名。
.\SQLEXPRESS 中的点 . 是“本地服务器”的代称,指的是本机。所以这是在连接本机上的一个名为 SQLEXPRESS 的实例。
如果你想从另一台电脑连接这台安装了 Express 的电脑,就需要把点 . 换成目标电脑的 IP 地址或主机名,例如 192.168.1.100\SQLEXPRESS。
结论:加 \SQLEXPRESS 是因为你要连接的是一个名为 “SQLEXPRESS” 的命名实例。
-
- 为什么有的时候可以直接用IP地址就能连上?
因为 那台目标服务器上存在一个“默认实例”。
- 为什么有的时候可以直接用IP地址就能连上?
如果你连接的服务器IP地址(如 192.168.1.100)在安装 SQL Server 时选择的是“默认实例”,那么你直接使用IP地址连接时,SQL Server 的客户端驱动就会自动去尝试连接该服务器上的默认实例。
本地连接的特殊情况:使用 (local) 或 .
在连接本机(即数据库和应用程序在同一台电脑上)时,除了用IP地址 127.0.0.1,还有一些特殊的别名:
. (一个点):代表本地计算机。
(local):代表本地计算机。
localhost:代表本地计算机。
所以,如果你本机有一个默认实例,你可以用:
.
(local)
localhost
127.0.0.1
如果你本机有一个名为 SQLEXPRESS 的命名实例,你就必须用:
.\SQLEXPRESS
(local)\SQLEXPRESS
localhost\SQLEXPRESS
*** 总结与类比**
你可以把这个概念类比成访问网站:
默认实例:就像访问一个网站的默认首页。你只需要输入域名(IP地址)即可,例如 https://www.google.com 。
命名实例:就像访问一个网站下的某个特定子站点或页面。你除了需要域名,还需要指定具体的路径(实例名),例如 https://www.example.com/blog 。这里的 blog 就相当于 \SQLEXPRESS。
如何判断该用哪种方式?
问安装者:最直接的方法是问部署这个SQL Server的人,他安装的是默认实例还是命名实例,实例名是什么。
查看服务列表:
在服务器电脑上,按 Win + R,输入 services.msc 打开服务窗口。
查找所有以 “SQL Server (...” 开头的服务。
括号里的名字就是实例名。如果看到 SQL Server (MSSQLSERVER),这就是默认实例(因为它没有单独的名字,就用MSSQLSERVER这个通用名代表)。如果看到 SQL Server (SQLEXPRESS),这就是一个名为 SQLEXPRESS 的命名实例。
使用 SQL Server 配置管理器:
在里面可以清晰地看到所有安装的实例及其完整名称。
SQLServer连接字符串 Server=localhost\SQLEXPRESS;database=XiangQueTiao;uid=sa;pWd=HYHHqjcf@224
****不用区分大小写 ****
浙公网安备 33010602011771号