记住输出的sql server的服务器版本.
我这里是Microsoft SQL Server 2014.安装环境:ubuntu18.
安装linux下的ODBC驱动管理器:
安装freetds(支持MSSQL的ODBC驱动):
注意:因为前面的ODBC驱动管理器是通过apt-get安装的,所以--with-unixodbc=就在/usr/下(有/usr/bin/odbcinst)。
1> select @@version 2> go # go这个命令才会执行前面的sql语句. 1> quit上面的命令,记住查询到的sql server服务器的版本. 我这里是Microsoft SQL Server 2014.
7.4
(记住)[global]里面加一行: client charset = UTF-8 # 避免中文乱码 然后,最下面有个“port = 1433”的章节,这个端口是MSSQL的默认端口.改一下这个章节的名字为MSSQL(要记住): 如下: [MSSQL] # 改动. host = 127.0.0.1 # 改动. port = 1433 # 没改 tds version = 7.4 # 改动.
[ODBC] Trace = No TraceFile = /tmp/sql.log ForceTrace = No Pooling = Yes [FreeTDS] Description = FreeTDS Driver Driver=/usr/local/freetds/lib/libtdsodbc.so
[ms-sql] # 对应connect字符串中的DSN Driver = FreeTDS # 这个和odbcinst.ini里的章节名儿对应起来. Servername = MSSQL # 这个和上面配置的freetds.conf里的章节名儿对应起来.
isql -v ms-sql username password # 必须加上user和pass。。否则连不上提示也奇怪。。也可以批量执行sql语句:
isql -v ms-sql myuser mypass -w < my.sql > 1.html # 输出结果到html文件
安装pyodbc:
- import pyodbc - pyodbc.drivers() # connect时SERVER, SERVERNAME, DSN这三个同时只能设一个,因此有三种connect方法: - cnxn = pyodbc.connect('DRIVER=FreeTDS;SERVER=127.0.0.1,1433;DATABASE=testDB;UID=myuser;PWD=mypass') # 推荐 - cnxn = pyodbc.connect('DRIVER=FreeTDS;Servername=MSSQL;DATABASE=testDB;UID=myuser;PWD=mypass') - cnxn = pyodbc.connect('DSN=ms-sql;DATABASE=testDB;UID=myuser;PWD=mypass') # 使用: - cursor = cnxn.cursor() - cursor.execute("select * from account") - rows = cursor.fetchall() - for row in rows: print("{}, {}".format(row.account_name, row.describe))详见:https://github.com/mkleehammer/pyodbc/wiki/Getting-started