欢迎光临
我们一直在努力

在MacOS上如何通过Python操作SqlServer

在MacOS上如何通过Python操作SqlServer

python操作ms-sqlserver或者ms-access等这类windows系的数据库,通常都要借助ODBC实现,也就是首先要在系统上配置一个ODBC的数据源,然后通过pyodbc来连接数据库。

但是对于在MacOS上进行开发的同学,想配置原生的ODBC数据源就不可能了,所以在MacOs上如何通过pyodbc连接sqlserver呢?这里就要借助FreeTDS和UnixODBC这两个工具,简单讲这两个工具配合使用,就可以完成在MacOS上配置一个odbc的dsn。

具体的操作步骤如下

1
2
3
brew update
brew install unixodbc
brew install freetds --with-unixodbc

这里一定要注意–with-unixodbc 要加上,否则后面可能会报so库找不到的问题

编辑freetds.conf文件,如果是上面用brew安装的,这个文件通常都在/usr/local/Cellar/freetds/<version>/etc/freetds.conf 下,如果找不到可以执行tsql -C看看

[MYMSSQL]
host = mssqlhost.xyz.com
port = 1433
tds version = 7.3

编辑完后 执行tsql -S MYMSSQL -U myuser -P mypassword  可以测试是否配置正确,如果看到
locale is “en_US.UTF-8”
locale charset is “UTF-8”
using default charset “UTF-8”
1>

表示配置ok,接着编辑odbcinst.ini和odbc.ini

运行odbcinst -j命令获得这两个配置文件的路径,然后编辑odbcinst.ini为如下内容

[FreeTDS]
Description=FreeTDS Driver for Linux & MSSQL
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so
UsageCount=1

其中这里如果提示libtdsodbc.so打不开 或者找不到,那就是之前安装freetds的时候没有加–with-unixodbc选项

编辑odbc.ini为如下内容
[MYMSSQL]
Description = Test to SQLServer
Driver = FreeTDS
Servername = MYMSSQL

其中的MYMSSQL要换成你之前在freetds中对应配置的, 这个MYMSSQL也就会作为你在python中连接pyodbc的dsn

运行 isql MYMSSQL myuser mypassword 测试以上的整个配置,如果显示connected!xxxxxxx。。。

那就表示ok。然后就可以在python中操作了,比如

1
2
3
import pyodbc
# the DSN value should be the name of the entry in odbc.ini, not freetds.conf
conn = pyodbc.connect('DSN=MYMSSQL;UID=myuser;PWD=mypassword')
【本站文章皆为原创,未经允许不得转载】:汤不热吧 » 在MacOS上如何通过Python操作SqlServer
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址