使用Python连接SQL Server Express时遇OperationalError错误求助
解决Python连接SQL Server Express的08001错误方法
确认SQL Server Express服务状态
按Win+R输入services.msc打开服务管理器,找到SQL Server (SQLEXPRESS)服务,确保它处于运行状态。如果未启动,右键选择启动,把启动类型设为自动,避免下次还要手动开启。启用TCP/IP协议
打开SQL Server配置管理器,展开SQL Server网络配置->SQLEXPRESS的协议,找到TCP/IP选项右键启用。双击TCP/IP进入设置,切换到IP地址标签拉到最底部,在IPAll栏设置TCP端口为1433,之后重启SQL Server服务生效。修正连接字符串
用pyodbc连接时,正确的字符串格式参考下面的代码:import pyodbc conn = pyodbc.connect( 'DRIVER={ODBC Driver 17 for SQL Server};' 'SERVER=localhost\\SQLEXPRESS;' 'DATABASE=你的数据库名称;' 'UID=你的数据库用户名;' 'PWD=你的数据库密码;' )注意事项:
- 服务器地址:本地连接用
localhost\SQLEXPRESS或者.\SQLEXPRESS;远程连接要填目标服务器的IP加实例名。 - 驱动版本:优先用新版驱动,比如
ODBC Driver 17 for SQL Server,别用老旧的SQL Server驱动。 - Windows身份验证的话,把
UID和PWD替换成Trusted_Connection=yes;。
- 服务器地址:本地连接用
验证数据库可访问性
先用SQL Server Management Studio(SSMS)尝试连接localhost\SQLEXPRESS,如果SSMS都连不上,问题不在Python,先解决数据库本身的访问问题。也可以用ping localhost测试本地网络连通,或者telnet localhost 1433检查端口是否开放(telnet未开启的话,先在Windows功能里启用)。检查防火墙规则
如果是远程连接,要确保Windows防火墙允许1433端口的TCP连接;本地连接一般不用,但如果防火墙有严格限制,也需要添加入站规则放行1433端口。
内容的提问来源于stack exchange,提问作者Akash Shukla
相关产品推荐
相关产品推荐

