ubuntu下连microsoft sql server解决方案
- shell for MSSQL:
- https://github.com/dbcli/mssql-cli
- mssql-cli -S 127.0.0.1,1433 -d testDB -U myuser -P mypass -Q "select @@version;select * from account"
记住输出的sql server的服务器版本.我这里是Microsoft SQL Server 2014.
- python for MSSQL:
安装环境:ubuntu18.
安装linux下的ODBC驱动管理器:
- sudo apt-get update
- sudo apt-get install unixodbc unixodbc-dev (unixodbc-dev是必须的!)
- odbcinst -j 测试安装成功
安装freetds(支持MSSQL的ODBC驱动):
- 前言: 作为可选的一个替代方案,也可以安装微软的驱动:https://docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017 (网上比较推荐freetds驱动.我们服务器用的Microsoft ODBC Driver 13.也成功了.下面仅讲述freetds驱动的安装步骤)
- sudo apt-get remove freetds-bin freetds-common freetds-dev (必须卸载先!必须通过编译的方式安装!不要用apt-get安装freetds!)
- 在这里查看最新的freetds下载地址:http://www.freetds.org/software.html
- 安装:
- wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.3.12.tar.gz
- tar zxf freetds-1.3.12.tar.gz
- cd freetds-1.3.12/
- ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/ --enable-msdblib --with-gnu-ld --enable-shared --enable-static
注意:因为前面的ODBC驱动管理器是通过apt-get安装的,所以--with-unixodbc=就在/usr/下(有/usr/bin/odbcinst)。 - sudo make && sudo make install
- sudo ln -s /usr/local/freetds/bin/tsql /usr/bin/tsql
- 测试安装成功:
- tsql -C
- tsql -H 127.0.0.1 -p 1433 -U myuser -P mypass
1> select @@version
2> go # go这个命令才会执行前面的sql语句.
1> quit
上面的命令,记住查询到的sql server服务器的版本. 我这里是Microsoft SQL Server 2014.
http://www.freetds.org/userguide/ChoosingTdsProtocol.html
在这个网址里可以查到sql server的版本对应的freetds协议号,可以看到2014对应的协议号是7.4(记住) - 配置freetds:
- sudo vi /usr/local/freetds/etc/freetds.conf
[global]里面加一行: client charset = UTF-8 # 避免中文乱码
然后,最下面有个“port = 1433”的章节,这个端口是MSSQL的默认端口.改一下这个章节的名字为MSSQL(要记住):
如下:
[MSSQL] # 改动.
host = 127.0.0.1 # 改动.
port = 1433 # 没改
tds version = 7.4 # 改动.
- 为ODBC驱动管理器添加上freetds驱动:
- sudo vi /etc/odbcinst.ini
编辑如下:
[ODBC]
Trace = No
TraceFile = /tmp/sql.log
ForceTrace = No
Pooling = Yes [FreeTDS]
Description = FreeTDS Driver
Driver=/usr/local/freetds/lib/libtdsodbc.so
- sudo vi /etc/odbc.ini
编辑如下:
[ms-sql] # 对应connect字符串中的DSN
Driver = FreeTDS # 这个和odbcinst.ini里的章节名儿对应起来.
Servername = MSSQL # 这个和上面配置的freetds.conf里的章节名儿对应起来.
- sudo vi /etc/odbcinst.ini
- 配置完成后测试:
- 使用 isql 测试一下,测试方式是执行:
isql -v ms-sql username password # 必须加上user和pass。。否则连不上提示也奇怪。。
也可以批量执行sql语句:
isql -v ms-sql myuser mypass -w < my.sql > 1.html # 输出结果到html文件
安装pyodbc:
- 建议python3,py2中的默认编码是ASCII码,py3默认编码是Unicode(utf-8).因此不需要在文件头部写"# coding=utf-8"了。
- sudo pip3 install pyodbc (如果timeout则多试几遍...)
- 测试:
- python3:
- 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
ubuntu下连microsoft sql server解决方案的更多相关文章
- Ubuntu下erlang连接SQL SERVER 2008
erlang连接SQL Server使用ODBC方法,但在网络上还是缺少资料,自己折腾了2天才成功.现在特记录下来,以供大家借鉴. 基本思路是 erlang odbcserver + unixodbc ...
- Zabbix template for Microsoft SQL Server总结
Zabbix template for Microsoft SQL Server介绍 这里介绍Zabbix下监控Microsoft SQL Server数据库非常好用的一个模板,模板名为&qu ...
- sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQL\data\itsm_Data.MDF'。数据库 'my1' 正在使用该文件的解决方案
对数据库备份进行还原时遇到“sql System.Data.SqlClient.SqlError: 无法覆盖文件 'C:\Program Files\Microsoft SQL Server\MSSQ ...
- Cenots7下安装运行.NET Core、MicroSoft SQL Server 2019 preview 的基础实践
一:概要 适应人群:.Net初学者.想了解.Net Core在Linux系统中的运行环境搭建者.初次且想在linux上应用.Net Core开发应用程序者: 基础技能:了解.NET基础开发技能者.有一 ...
- 安装Microsoft SQL server Management Studio Express 2005 错误码是29506解决方案
安装Microsoft SQL server Management Studio Express 2005,安装程序在安装此软件包时遇到一个错误,这可能表示此软件包有错.错误码是29506”权限问题. ...
- 附加数据库时,提示“Microsoft SQL Server,错误: 5120”, 解决方案
错误的提示内容为:
- Microsoft SQL Server on Linux 踩坑指南
微软用 SQL Server 在 2016 年的时候搞了一个大新闻,宣传 Microsoft ❤️ Linux 打得一众软粉措手不及.但是这还是好事情,Linux 上也有好用的 SQL Server ...
- 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务
使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...
- [转]Microsoft SQL SERVER 2008 R2 REPORT SERVICE 匿名登录
本文转自:https://www.cnblogs.com/Zouzhe/p/5736070.html SQL SERVER 2008 R2 是微软目前最新的数据库版本,在之前的SQL SERVER 2 ...
随机推荐
- numpy教程04---ndarray的索引
欢迎关注公众号[Python开发实战], 获取更多内容! 工具-numpy numpy是使用Python进行数据科学的基础库.numpy以一个强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变 ...
- 2021蓝桥杯省赛B组(C/C++)E.路径【最短路DP】
2021蓝桥杯省赛B组题目(C/C++)E.路径 最短路径, 因为变化情况比较多, 所以开始想的是深搜, 但是太慢了, 跑不出来, 后来就想着优化一下, 有的地方到另一个地方可能会考虑很多遍, 于是考 ...
- 2021.08.16 P1260 工程规划(差分约束)
2021.08.16 P1260 工程规划(差分约束) 重点: 1.跑最短路是为了满足更多约束条件. P1260 工程规划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 造 ...
- 五分钟配置 MinGW-W64 编译工具
编译器是一个诸如 C 语言撰写的源程序一步一步走向机器世界彼岸的桥梁. Gnu 项目的 GCC 编译器是常用的编译器之一.儿在Windows 上也有 MinGW 这样可用的套件,可以让我们使用 GCC ...
- SerialPort-4.0.+ 使用说明(Java版本)
SerialPort-4.0.+ 项目官网 Kotlin版本使用说明 介绍 SerialPort 是一个开源的对 Android 蓝牙串口通信的轻量封装库,轻松解决了构建自己的串口调试APP的复杂程度 ...
- 合并csv文件保存到一个csv文件中-保留表头
主要实现功能: 在同一文件夹下的所有csv文件全部合并到同一个csv文件中,并将csv文件的表头保留 1 import os 2 import pandas as pd 3 path = os.get ...
- Redis 内存满了怎么办?这样设置才正确!
上回在<Redis 数据过期了会被立马删除么?>说到如果过期的数据太多,定时删除无法删除完全(每次删除完过期的 key 还是超过 25%),同时这些 key 再也不会被客户端请求,就无法走 ...
- XCTF练习题---CRYPTO---safer-than-rot13
XCTF练习题---CRYPTO---safer-than-rot13 flag:no_this_is_not_crypto_my_dear 解题步骤: 1.观察题目,下载附件 2.打开后发现是个文件 ...
- 单列集合(Collection-Set)
(部分) Set类特点: "无序"(输入顺序和存储顺序不一样) HashSet 底层是HashMap 关于不能有重复元素/对象 遇到的问题: 解决办法:重新类的相关方法 选择名字和 ...
- 一文讲透APaaS平台是什么
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 互联网行业就喜欢搞一些单词的缩写,在云计算行业,前者有SaaS.PaaS.IaaS,最近两三年 ...