ubuntu下python操作数据库sqlserver

主要是想用树莓派操作sqlserver,这样设备的iot信号采集的时候就可以直接传送到数据库,成本会稍微低一点,不用另外再配置电脑与server连接,对于一些低成本设备的信号采集很好用。

先用ubuntu测试一下吧:
系统:ubuntu20.04

在unbuntu环境下操作sqlserver没有在windows方便,但好在资源也算丰富,总结起来只要两步就可以了:

  1. 首先配置freetds和unixodbc。
  2. 再配置pyodbc,这步自己折腾的,网上没有现成的。

第一步:配置freetds和unixodbc的时候,用到两个包:freetds和unixodbc
可参考这一篇:
http://blog.sina.com.cn/s/blog_a26e6d690102wxzf.html
不过版本应该是旧的,我这里的版本分别是:
freetds-1.1.23.tar.gz和unixODBC-2.3.7.tar.gz。
安装好时候,一定用进行测试,保证在终端可以访问数据库。

第二步:一定要保证第一步在终端可以连接数据库。
安装pyodbc可参考:
https://www.csdn.net/gather_2b/MtTaUg4sNzkwMC1ibG9n.html
不过看看就好,我全照着来还是有点问题,你们可以试试能否成功。

我呢,只要用到以下命令安装pyodbc
sudo apt install python3-pip
sudo apt install unixodbc-dev
sudo pip3 install pyodbc
安装完毕后,就可以着手写代码了,有个地方是重点:Driver那里,这个一定要注意,网上的驱动都不大对,我的灵感来自这里:
https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-Hive-from-Ubuntu-Debian
DRIVER={/usr/local/freetds/lib/libtdsodbc.so}这是最重要的
附上代码和结果:
在这里插入图片描述
python代码

# coding=utf-8
import pyodbc

conn = pyodbc.connect(r'DRIVER={/usr/local/freetds/lib/libtdsodbc.so};SERVER=192.168.1.35,1433;DATABASE=MES;UID=sa;PWD=123')
cursor = conn.cursor()

cursor.execute("select * from Table_for_PLC") #调用游标指针的execute方法执行sql语句
row = cursor.fetchone() #sql语句执行结果的获取,如果需要一次获取多条记录,可以使用cursor.fetchall()方法
if row:
  print (row)
  
conn.commit() 
conn.close()

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值