首页 > 解决方案 > 使用 FreeTDS 连接到 Raspberry Pi 上的 Azure SQL 服务器

问题描述

我设计了一个 python 脚本,它执行一些操作,然后写入 Azure SQL 服务器。最初,我在 Windows 机器上编写脚本,一切正常。现在我想在现场的树莓派上部署脚本。我打嗝的地方是试图让 pi 写入 SQL 服务器。我使用 FreeTDS 作为我的 pyodbc 驱动程序,我的 .ini 文件和配置文件如下所示:

odbcinst.ini

Description = FreeTDS Driver
Driver=/usr/lib/arm-linux-gnueabihf/odbc/libtdsodbc.so
Setup=/usr/lib/arm-linux-gnueabihf/odbc/libtdsS.so
fileusage=1
dontdlclose=1
usagecount=1

odbc.ini

Driver = FreeTDS
Description = Azure cloud SQL server
Trace = no
ServerName = azure
database = main
TDS_Version = 7.0

freetds.conf

[azure]
        host = ************.database.windows.net
        port = 1433
        tds version = 7.0
        instance = MSSQLSERVER

蟒蛇方法

def writeData():
server = '***************.database.windows.net'
        database = 'main'
        username = '****'
        password = '************'
        driver = '{FreeTDS}'

        with pyodbc.connect(
                'DRIVER=' + driver + ';SERVER=' + server + ';PORT=1433;DATABASE=' + database + ';UID=' + username + ';PWD=' + password) as conn:
            with conn.cursor() as cursor:
                cursor.execute(
                    "UPDATE dbo.server_ips SET ip_address = ?, port = ?, DateTime= ? WHERE server = 1;", (external_ip, port, datetime.now()))

pyodbc.OperationalError: ('08001', '[08001] [FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')

我不确定我做错了什么,我已经尝试寻找答案,但到目前为止都是空的。

标签: sql-serverpython-3.xazurepyodbc

解决方案


事实证明,ARM 尚不支持写入 azure sql server。我相信很快就会考虑 Windows 11 在 ARM 处理器上运行。


推荐阅读