• 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. 1> select @@version
        2. 2> go # go这个命令才会执行前面的sql语句.
        3. 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
        1. [global]里面加一行: client charset = UTF-8 # 避免中文乱码
        2. 然后,最下面有个“port = 1433”的章节,这个端口是MSSQL的默认端口.改一下这个章节的名字为MSSQL(要记住):
        3. 如下:
        4. [MSSQL] # 改动.
        5. host = 127.0.0.1 # 改动.
        6. port = 1433 # 没改
        7. tds version = 7.4 # 改动.
      • 为ODBC驱动管理器添加上freetds驱动:
        • sudo vi /etc/odbcinst.ini

          编辑如下:
        1. [ODBC]
        2. Trace = No
        3. TraceFile = /tmp/sql.log
        4. ForceTrace = No
        5. Pooling = Yes
        6. [FreeTDS]
        7. Description = FreeTDS Driver
        8. Driver=/usr/local/freetds/lib/libtdsodbc.so
        • sudo vi /etc/odbc.ini

          编辑如下:
        1. [ms-sql] # 对应connect字符串中的DSN
        2. Driver = FreeTDS # 这个和odbcinst.ini里的章节名儿对应起来.
        3. Servername = MSSQL # 这个和上面配置的freetds.conf里的章节名儿对应起来.
      • 配置完成后测试:
        • 使用 isql 测试一下,测试方式是执行:
        1. isql -v ms-sql username password # 必须加上user和pass。。否则连不上提示也奇怪。。

        也可以批量执行sql语句:

        1. 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:
        1. - import pyodbc
        2. - pyodbc.drivers()
        3. # connect时SERVER, SERVERNAME, DSN这三个同时只能设一个,因此有三种connect方法:
        4. - cnxn = pyodbc.connect('DRIVER=FreeTDS;SERVER=127.0.0.1,1433;DATABASE=testDB;UID=myuser;PWD=mypass') # 推荐
        5. - cnxn = pyodbc.connect('DRIVER=FreeTDS;Servername=MSSQL;DATABASE=testDB;UID=myuser;PWD=mypass')
        6. - cnxn = pyodbc.connect('DSN=ms-sql;DATABASE=testDB;UID=myuser;PWD=mypass')
        7. # 使用:
        8. - cursor = cnxn.cursor()
        9. - cursor.execute("select * from account")
        10. - rows = cursor.fetchall()
        11. - for row in rows:
        12. print("{}, {}".format(row.account_name, row.describe))

        详见:https://github.com/mkleehammer/pyodbc/wiki/Getting-started

ubuntu下连microsoft sql server解决方案的更多相关文章

  1. Ubuntu下erlang连接SQL SERVER 2008

    erlang连接SQL Server使用ODBC方法,但在网络上还是缺少资料,自己折腾了2天才成功.现在特记录下来,以供大家借鉴. 基本思路是 erlang odbcserver + unixodbc ...

  2. Zabbix template for Microsoft SQL Server总结

      Zabbix template for Microsoft SQL Server介绍   这里介绍Zabbix下监控Microsoft SQL Server数据库非常好用的一个模板,模板名为&qu ...

  3. 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 ...

  4. Cenots7下安装运行.NET Core、MicroSoft SQL Server 2019 preview 的基础实践

    一:概要 适应人群:.Net初学者.想了解.Net Core在Linux系统中的运行环境搭建者.初次且想在linux上应用.Net Core开发应用程序者: 基础技能:了解.NET基础开发技能者.有一 ...

  5. 安装Microsoft SQL server Management Studio Express 2005 错误码是29506解决方案

    安装Microsoft SQL server Management Studio Express 2005,安装程序在安装此软件包时遇到一个错误,这可能表示此软件包有错.错误码是29506”权限问题. ...

  6. 附加数据库时,提示“Microsoft SQL Server,错误: 5120”, 解决方案

    错误的提示内容为:

  7. Microsoft SQL Server on Linux 踩坑指南

    微软用 SQL Server 在 2016 年的时候搞了一个大新闻,宣传 Microsoft ❤️ Linux 打得一众软粉措手不及.但是这还是好事情,Linux 上也有好用的 SQL Server ...

  8. 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务

    使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...

  9. [转]Microsoft SQL SERVER 2008 R2 REPORT SERVICE 匿名登录

    本文转自:https://www.cnblogs.com/Zouzhe/p/5736070.html SQL SERVER 2008 R2 是微软目前最新的数据库版本,在之前的SQL SERVER 2 ...

随机推荐

  1. js知识梳理6:关于函数的要点梳理(2)(作用域链和闭包)

    写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出 ...

  2. JavaFX入门及相关问题

    下个星期是我们专业的课程设计专周,主要是做一个Java的桌面应用程序,老师上课讲的是用Swing来开发图形化界面,但是听朋友说到一个可视化的图形界面工具JavaFX,本 人愚笨,弄了一天才大致调试完成 ...

  3. Python入门-多进程

    1.获取本机CPU # 早期的CPU是单核:实现多个程序并行,在某一时间点,其实只有一个进程 # 后来硬件多核CPU:多个进程是并行执行. from multiprocessing import cp ...

  4. kafka生产者调优手册

    目录 第一章 kafka硬件配置选择 1.1 场景说明 1.2 服务器台数选择 1.3 磁盘选择 1.4 内存选择(堆内存,页缓存) 1.4.1 堆内存配置 1.4.2 页缓存选择 1.5 cpu选择 ...

  5. Go 框架学习之旅 ① 深入解析 net/http 启动服务的层级逻辑

    Web Server. net/http 标准库怎么学. 库函数. 结构定义. 结构函数. 思维导图解析HTTP服务端. 层级逻辑. 创建框架的Server结构. OSI参考模型. TCP/IP五层模 ...

  6. Java语言学习day24--7月30日

    ###17创建子类对象过程的细节 * A 创建子类对象过程的细节 * 如果子类的构造方法第一行写了this调用了本类其他构造方法,那么super调用父类的语句还有吗? * 这时是没有的,因为this( ...

  7. GAIA-IR: GraphScope 上的并行化图查询引擎

    在本文中,我们将介绍 GraphScope 图交互式查询引擎 GAIA-IR,它支持高效的 Gremlin 语言表达的交互图查询,同时高度抽象了图上的查询计算,具有高可扩展性. 背景介绍 在海量数据的 ...

  8. CentOS Nginx的安装与部署

    安装工具包 wget.vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc ...

  9. Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarch64

    编译项目报错: Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch ...

  10. RestFul和控制器

    RestFul和控制器 控制器Controller 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现. 控制器负责解析用户的请求并将其转换为一个模型. 在Spring MVC中 ...