Tom*_*dil 5 python sql-server pyodbc raspbian raspberry-pi3
我目前正在尝试将我的树莓派 3 与 Raspbian Stretch Lite(2017 年 11 月)连接到 MSSQL Server。我遵循本指南并将驱动程序和设置字段替换为
Driver=/usr/lib/arm-linux-gnueabihf/odbc/libtdsodbc.so
Setup=/usr/lib/arm-linux-gnueabihf/odbc/libtdsS.so
Run Code Online (Sandbox Code Playgroud)
正如有人在评论部分提出的那样,匹配我的 pi 上的路径。当我尝试通过 python 脚本连接时
conn = pyodbc.connect('DRIVER=FreeTDS;SERVER<IP_OR_HOSTNAME>;PORT=1433;DATABASE<DATABASE_NAME>;UID=<USERNAME>;PWD=<PASSWORD>;')
Run Code Online (Sandbox Code Playgroud)
其中 <> 填充了正确的字符串,我的脚本卡在这一行而不打印任何内容,直到我执行键盘中断。
我还尝试使用 Debian 9 版本让官方 MS 驱动程序正常工作,但我无法安装这些软件包,因为msodbcsql仍然无法在curl 命令和apt-get update.
我是否缺少一些让 FreeTDS 工作的东西,或者脚本卡住是否意味着 pi 无法连接到服务器?还有其他方法可以将 pi 连接到 MSSQL 吗?
先感谢您。
我正在使用以下dockerfile将 Raspberry Pi 3 连接到远程 SQL Express 数据库。它应该记录所需的所有步骤。我的 Pi 运行的是基于 Raspian 的HypriotOS 。
FROM arm32v7/python:3
RUN apt-get update
#1. Install dependencies for PyODBC and tds
RUN apt-get install -y tdsodbc unixodbc-dev
RUN apt install unixodbc-bin -y
RUN apt-get clean -y
#2. Edit /etc/odbcinst.ini
RUN echo "[FreeTDS]\n\
Description = FreeTDS unixODBC Driver\n\
Driver = /usr/lib/arm-linux-gnueabi/odbc/libtdsodbc.so\n\
Setup = /usr/lib/arm-linux-gnueabi/odbc/libtdsS.so" >> /etc/odbcinst.ini
#3. Install requirements (contains pyodbc)
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
#Copy and run my app
COPY . .
CMD [ "python", "app.py"]
Run Code Online (Sandbox Code Playgroud)
所以基本上是三个步骤:
/etc/odbcinst.inipip install pyodbc在我的代码中,我可以像这样连接到数据库:
connection = pyodbc.connect(driver='{FreeTDS}',
server='111.66.111.66\SQLEXPRESS',
uid='sa', pwd='notmyactualpw')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13175 次 |
| 最近记录: |