使用pymssql连接SQL Server遇连接拒绝错误求助
解决pymssql/pyodbc无法连接SQL Server(SSMS可正常连接)的问题
排查及解决步骤
明确SQL Server实例监听端口
无需配置工具,通过SSMS执行SQL即可查询端口:SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID;获取端口后,在连接字符串中明确指定端口。比如端口为1433时:
pymssql连接写法:conn = pymssql.connect(host='DESKTOP-J8IS63J\SQLEXPRESS,1433', user='user', password='pass', database='DgtalLaundry')pyodbc连接写法:
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=DESKTOP-J8IS63J\SQLEXPRESS,1433;DATABASE=DgtalLaundry;UID=user;PWD=pass')启用SQL Server的TCP/IP连接
通过注册表检查并修改:
打开regedit,导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQLServer\SuperSocketNetLib\Tcp(注意MSSQL15需匹配你的SQL Server版本),将Enabled值改为1,之后打开services.msc找到SQL Server (SQLEXPRESS)服务重启。核对连接字符串实例名
确认SSMS中使用的实例名和代码完全一致,若不确定,可尝试用127.0.0.1,端口号替代实例名进行连接测试。检查防火墙规则
临时关闭Windows防火墙测试连接,若恢复正常,需添加允许SQL Server端口(如1433)的入站规则,或允许Python程序通过防火墙。验证身份验证模式
在SSMS中右键实例→属性→安全性,确认服务器使用混合身份验证模式(Windows+SQL Server身份验证),避免因仅启用Windows身份验证导致SQL账号无法登录。
内容的提问来源于stack exchange,提问作者Al Mahanad Al Mahdhour
相关产品推荐
相关产品推荐

