![SQL Server 无法连接](https://linux22.com/image/527420/SQL%20Server%20%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5.png)
我刚刚安装了 SQL Server Express 2008 和 Management Studio,但当我尝试连接时,我得到了
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 2)
我想使用 SQL Server 身份验证,但我不知道如何设置带有用户名和密码的帐户。求助,我是新手;我只使用过 MySQL,这似乎要复杂得多。
答案1
要使用 Management Studio 连接到具有 Windows 身份验证的本地 SQLExpress 实例,您需要按如下方式设置服务器名称和身份验证:
如果您在设置新用户帐户时遇到问题,只需打开 MS SQL Server Management Studio:
打开安全并右键单击登录并创建一个新的登录:
将类型设置为 SQL Server 身份验证并添加密码(不要忘记取消选中必须更改框):
然后您只需将新用户映射到数据库:
测试这个新帐户的最简单方法是通用数据链接 (.udl) 文件。无需代码。只需在 Windows 机器上创建一个扩展名为 .udl 的空文本文件并双击它即可。
弹出一个向导,您可以很快测试您的配置(您的实例名称,即“\”右侧的部分将是 SQLEXPRESS)。
另外,一旦您让它工作了,您就可以在文本编辑器中打开它并提取您的连接字符串。如果它在您的本地机器上不起作用,请在服务器上尝试。如果有效,请跳到本文末尾查找罪魁祸首。
如果上述方法均无效,则您遇到的问题可能与 SQL Server 本身的设置有关。打开 SQL Server 配置管理器:
然后进入SQL Server网络配置:
然后双击 MSSQLSERVER 的协议:
并确保 TCP/IP 已启用:
如果启用了 TCP/IP,您可能会遇到防火墙问题(默认情况下需要端口 1433,但可以配置为其他端口)。
编辑:正如 Dave 提到的,如果您尝试远程连接但不允许,您也可能会遇到麻烦。要检查/更改这一点,请打开 Management Studio 并右键单击您连接到的实例:
打开属性窗口:
然后转到连接选项卡并确保允许远程连接:
答案2
1)检查服务是否正在运行 - 它可能在 MSSQL、Microsoft SQL Server 或 SQL Server 下,我不记得是哪一个了。
2) 检查 SQL Browser 服务是否正在运行 - 如果没有,请启动它。如果不存在,也没关系。
3) 我发现最常见的原因是 SQL Server 处理在服务器上多次运行的方式。如果您安装一次,它通常会成为默认数据库引擎,您可以作为 (SERVERNAME) 连接到它。
但是如果您安装了许多数据库引擎,那么在 MS SQL 术语中,它们被命名为 (SERVERNAME)\instancename,如果您尝试连接到错误的数据库引擎,那么它将不会接受您的登录。
因此,如果它是使用实例名称安装的(它可能在安装过程中提示您?),您将需要找出或输入该名称 - 或者使用服务器名称的下拉菜单并尝试“浏览”(可能需要 SQL 浏览器)看看它是否可以告诉您正确的名称,或者您可以在 SQL Server 配置管理器中找到它。
此外,MS SQL 数据库引擎通常在端口 1433 上运行,但如果不这样做,则您需要运行 SQL Browser 服务以将客户端定向到正确的端口,或者您需要自己指定端口,您可以在配置管理器中的 TCP/IP 设置中找到该端口。我看到您的错误与命名管道连接有关,可能需要先启用该连接,也在配置管理器中。
所以,
Check services are running
Find database / instance name
Check Names Pipes and TCP/IP are enabled in Config Manager
Check TCP/IP Port number
答案3
在某些情况下,这与身份验证无关。 在某些情况下,如果您输入的服务器地址有任何错误,就会出现此错误!
如果您可以将您的代码放在这里以获得更多帮助:D