You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4远程连接Microsoft SQL Server报[08S01]错误求助

树莓派4远程连接Microsoft SQL Server报错[08S01]排查方案

问题描述

尝试在树莓派4上通过Python的pyodbc库远程连接Microsoft SQL Server,执行代码后出现如下错误:

[08S01] [08S01][FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist (20009) (SQLDriverConnect)

已参考旧教程步骤操作,但问题仍未解决。相关代码如下:

import pyodbc

dsn='sqlserverdatasource '
user='....'
password='...'
database='msbd'

con_string='DSN=%s';UID=%s;PWD=%s;DATABASE=%s;'% (dsn, user, password, database)
print("debug1")

cnxn=pyodbc.connect(con_string)
print("debug2")

排查与解决步骤

1. 修复代码语法错误

你的连接字符串拼接存在语法错误:字符串未正确闭合,且dsn变量末尾有多余空格。修正后的代码:

import pyodbc

dsn='sqlserverdatasource'
user='your_username'
password='your_password'
database='msbd'

# 修正字符串拼接逻辑,将整个连接串放在一对引号内
con_string = 'DSN=%s;UID=%s;PWD=%s;DATABASE=%s;' % (dsn, user, password, database)
print("debug1")

cnxn=pyodbc.connect(con_string)
print("debug2")

2. 验证FreeTDS配置有效性

树莓派依赖FreeTDS驱动连接SQL Server,先通过命令行测试基础连通性:

  • 执行命令手动测试连接:
    tsql -S sqlserverdatasource -U your_username -P your_password
    
  • 如果连接失败,检查FreeTDS配置文件(通常是/etc/freetds/freetds.conf或~/.freetds.conf),确保配置正确:
    [sqlserverdatasource]
        host = 你的SQL Server公网/内网IP
        port = 1433  # SQL Server默认端口,若修改过需对应调整
        tds version = 7.4  # 版本需匹配目标SQL Server:2016+用7.4,2012用7.2,更早版本用7.0
    

3. 排查网络连通性

  • 先测试树莓派与SQL Server的网络连通:
    ping 你的SQL ServerIP
    
  • 再验证端口是否开放:
    nc -zv 你的SQL ServerIP 1433
    
    若提示Connection refused,需做以下操作:
    • 在SQL Server所在机器的防火墙中,添加1433端口的入站允许规则
    • 在SQL Server Management Studio中,右键服务器→属性→连接,勾选"允许远程连接到此服务器"
    • 若使用SQL Server命名实例,确保SQL Server Browser服务处于运行状态

4. 确认SQL Server账号权限

  • 确保使用的是SQL Server认证账号(而非Windows认证),且该账号拥有远程登录权限及msbd数据库的访问权限
  • 可在SQL Server上执行以下查询验证:
    -- 检查账号是否存在
    SELECT name, type_desc FROM sys.server_principals WHERE name = 'your_username';
    -- 检查是否有数据库连接权限
    SELECT has_perms_by_name('msbd', 'DATABASE', 'CONNECT') AS HasConnectPermission;
    

5. 升级依赖版本

你参考的教程发布于2012年,依赖版本可能过时。在树莓派上重新安装最新版依赖:

sudo apt update && sudo apt install -y freetds-dev freetds-bin unixodbc-dev
pip install --upgrade pyodbc

内容的提问来源于stack exchange,提问作者Burçin Baysal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 16:15:26