给岁月以文明,而不是给文明以岁月

文章分类

关于博主

头像不见了

linux 下连接 sqlserver


/ 阅读 214

一 所需软件

操作系统 centos 6.9

  • 数据库
    SQLServer2008 installed in windows 10

  • ODBC
    unixODBC-2.3.4.tar.gz ( http://www.unixodbc.org)

  • freetds
    freetds-1.00.3.tar.gz ( http://www.freetds.org)

二 安装配置

1、安装unixODBC

$ tar vxzf unixODBC-2.2.8.tar.gz  
$ cd unixODBC-2.2.8   
$ ./configure --prefix=/usr/local/unixODBC --enable-gui=no  
$ sudo make   
$ sudo make install

2、安装freetds

$ tar vxzf freetds-0.62.4.tar.gz   
$ cd freetds-0.62.4  
$ ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC --enable-msdblib --with-tdsver=7.4  
$ make  
$ make install  

3、配置freetds

$ vi /usr/local/freetds/etc/freetds.conf

改好之后的内容:

[global]
        # TDS protocol version
        tds version = auto
[SQLServer2008]
        host = 192.168.111.1
        port = 1433
        tds version = 7.4
        client charset=GBK

client charset要与数据库字符集一致,否则插入式会发生错误。

测试连接:

$ /usr/local/freetds/bin/tsql -S SQLServer2008 -p 1433 -U test -P test  

出现 1> 即可, 可以输入select * from [database].dbo.[table]; go;

这说明安装freetds成功

4、配置unixODBC

向ODBC添加SQLServer驱动

$ sudo vim /usr/local/unixODBC/etc odbcinst.ini

写入如下内容:

[ODBC]
Trace           = Yes
TraceFile       = /tmp/sql.log
ForceTrace      = Yes
Pooling         = No
[SQLSERVER]
Description     = SQLSERVER
Driver          = /usr/local/freetds/lib/libtdsodbc.so
Setup           = /usr/local/freetds/lib/libtds.so
UsageCount      = 1
CPTimeout       = 5
CPReuse         = 5
FileUsage       = 1

保存退出

添加DSN

$ vi /usr/local/unixODBC/etc/odbc.ini

写入如下内容

[upload]
Driver          = SQLSERVER   
Description     = SQLSERVER
Servername      = SQLServer2008
;Server         = 192.168.111.1
Database        = upload
Port            = 1433

Servername是freetds里配置的服务器名称,如果使用Server则字符集会有问题

注意Driver驱动要写odbcinst.ini中的驱动名称,Database是数据库的名称

[upload] 是数据源名称

保存并退出。

测试ODBC的连接

$ cd /usr/local/unixODBC/bin
$ ./isql upload test test
SQL>
SQL> quit