在树莓派 4B 上使用 pyodbc 连接 SQL Server,涉及到几个步骤,包括安装 FreeTDS、配置 ODBC 驱动和数据源、以及使用 pyodbc 进行连接。以下是详细的步骤和示例:
- 安装 FreeTDS 和 ODBC 组件
首先,确保树莓派上安装了必要的软件包。可以使用以下命令安装 FreeTDS、unixODBC 和 pyodbc:
sudo apt update
sudo apt install freetds-bin freetds-dev unixodbc unixodbc-dev python3-pyodbc
- 配置 FreeTDS
FreeTDS 是一个用于连接 SQL Server 的开源驱动程序。你需要配置 FreeTDS,以便它知道如何连接到 SQL Server 实例。
编辑 /etc/freetds/freetds.conf 文件,添加 SQL Server 实例的配置信息。例如:
[global]
tds version = 7.4
# 根据你的 SQL Server 版本调整 TDS 版本
# 其他全局配置选项,例如字符集、日志文件等
[myserver]
host = your_server_ip_or_hostname
port = 1433
# 如果你的 SQL Server 使用动态端口,省略 port 行,依赖 SQL Server 浏览器服务
- 配置 ODBC 数据源
接下来,配置 ODBC 数据源,使 pyodbc 能够通过 ODBC 连接到 SQL Server。
编辑 /etc/odbc.ini 文件,添加你的数据源配置。例如:
[mydsn]
Description = FreeTDS driver for SQL Server
Driver = FreeTDS
Server = your_server_ip_or_hostname
Port = 1433
Database = your_database_name
# 如果需要指定用户凭证,可以在此处添加
# UID = your_username
# PWD = your_password
- 使用 pyodbc 连接 SQL Server
安装 pyodbc 库,如果还没有安装,可以使用 pip:
pip3 install pyodbc
然后,可以在 Python 脚本中使用 pyodbc 连接到 SQL Server。例如:
import pyodbc
# 使用 ODBC 数据源名称连接
dsn = 'mydsn' # 在 /etc/odbc.ini 中定义的 DSN
user = 'your_username'
password = 'your_password'
# 建立连接
conn = pyodbc.connect(f'DSN={dsn};UID={user};PWD={password}')
# 创建一个游标对象
cursor = conn.cursor()
# 执行 SQL 查询
cursor.execute('SELECT * FROM your_table')
# 获取查询结果
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
测试连接
使用 isql 工具测试每个数据源的连接:
isql -v ds_instance1 your_username your_password
使用 Python 连接多个实例
import pyodbc
# 连接到第一个 SQL Server 实例
conn1 = pyodbc.connect('DSN=ds_instance1;UID=your_username;PWD=your_password')
# 连接到第二个 SQL Server 实例
conn2 = pyodbc.connect('DSN=ds_instance2;UID=your_username;PWD=your_password')
# 使用连接进行数据库操作