记录一下 sql server 连接不上的问题
SQL Server 数据库连接问题
连接测试用代码:
1 | import pymssql |
能解决大部分问题的方案
解决方案: 重启数据库服务
直接在任务管理器图示位置进行服务重启,或:
进入 CMD,输入 services.msc ,进入到服务页面,找到 SQL Server(SQLEXPRESS)右键重启。
可以顺手把启动方式该成自动。
后重新启动 ssms。进行验证
如果还是不能解决的方案
若仍然无效,可通过以下步骤进行排查:
1. 确认 SQL Server 服务是否运行
- 打开“服务”管理工具
- 找到 SQL Server 服务(通常是以
SQL Server (MSSQLSERVER)
命名) - 确认其状态为“正在运行”。
代码示例
在命令提示符中可以使用以下命令来查看服务状态:
1 | sc query "MSSQLSERVER" |
2. 检查网络连接
如果 SQL Server 服务正常运行,下一步需要检查网络连接是否正常。可以通过 ping
命令测试连接:
1 | ping <数据库服务器IP> |
代码示例
假设数据库服务器的 IP 地址为 192.168.1.100
,可以使用以下命令:
1 | ping 192.168.1.100 |
如果无法 ping 通,需检查网络设置或是否有防火墙阻止连接。
3. 验证 SQL Server 实例名和端口
在连接数据库时,确保使用了正确的实例名和端口。如果使用的是默认实例,通常可以直接使用服务器的 IP 地址或主机名。如果使用的是命名实例,则需要在连接字符串中指定实例名。
例子
默认实例连接字符串:
1 | Server=192.168.1.100;Database=SampleDB;User Id=myUsername;Password=myPassword; |
命名实例连接字符串:
1 | Server=192.168.1.100\SQLExpress;Database=SampleDB;User Id=myUsername;Password=myPassword; |
4. 检查 SQL Server 配置管理器
确保 SQL Server 正在接受远程连接。可以通过以下步骤在 SQL Server 配置管理器中进行检查:
- 打开 SQL Server 配置管理器
- 点击 “SQL Server 网络配置”,然后选择 “协议”。
- 确保 “TCP/IP” 协议已启用。
5. 防火墙设置
如果服务和网络连接正常,我们还需要检查防火墙设置。确保 SQL Server 所使用的端口(默认是 1433 对于 TCP/IP)已被允许通过防火墙。
代码示例(Windows 防火墙配置)
在命令提示符中使用以下命令允许 1433 端口:
1 | netsh advfirewall firewall add rule name="SQL Server Port 1433" dir=in action=allow protocol=TCP localport=1433 |
6. 使用 SQLCMD 测试连接
可以使用 SQL Server 提供的 SQLCMD 工具来测试连接,以确保连接字符串的正确性。
代码示例
1 | sqlcmd -S 192.168.1.100 -U myUsername -P myPassword |
如果连接成功,则会提示 入 SQL 命令。
7. 错误日志
如果以上步骤仍未解决问题,可以查阅 SQL Server 错误日志。错误日志通常可以在 SQL Server Management Studio 的“管理”部分找到。
代码示例
查看错误日志的 SQL 语句:
登录后复制
1 | EXEC xp_readerrorlog; |