【Linux】freetds安装配置连接MSSQL

我使用的是freetds-0.91,下载地址:http://pan.baidu.com/s/1hq68rZY

安装编译(根据需要unixodbc):

[root@zabbixserver / ]# tar zxvf freetds-stable.tgz

[root@zabbixserver / ]# cd freetds-0.91

[root@zabbixserver freetds-0.91]# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-shared --enable-static --with-unixodbc=/usr/local/unixODBC

[root@zabbixserver freetds-0.91]# make && make install

如果unixODBC有报错:

[root@zabbixserver freetds-0.91]# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-shared --enable-static --with-unixodbc=/usr/local/unixODBC

...

configure: error: sql.h not found

[root@zabbixserver freetds-0.91]# cp /usr/local/unixODBC/include/sql.h /usr/local/include/ 

编译说明:

[root@zabbixserver freetds-0.91]# ./configure --help

`configure' configures FreeTDS 0.91 to adapt to many kinds of systems.



Usage: ./configure [OPTION]... [VAR=VALUE]...



To assign environment variables (e.g., CC, CFLAGS...), specify them as

VAR=VALUE.  See below for descriptions of some of the useful variables.



Defaults for the options are specified in brackets.



Configuration:

  -h, --help              display this help and exit

      --help=short        display options specific to this package

      --help=recursive    display the short help of all the included packages

  -V, --version           display version information and exit

  -q, --quiet, --silent   do not print `checking...' messages

      --cache-file=FILE   cache test results in FILE [disabled]

  -C, --config-cache      alias for `--cache-file=config.cache'

  -n, --no-create         do not create output files

      --srcdir=DIR        find the sources in DIR [configure dir or `..']



Installation directories:

  --prefix=PREFIX         install architecture-independent files in PREFIX

                          [/usr/local]

  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX

                          [PREFIX]



By default, `make install' will install all the files in

`/usr/local/bin', `/usr/local/lib' etc.  You can specify

an installation prefix other than `/usr/local' using `--prefix',

for instance `--prefix=$HOME'.



For better control, use the options below.



Fine tuning of the installation directories:

  --bindir=DIR            user executables [EPREFIX/bin]

  --sbindir=DIR           system admin executables [EPREFIX/sbin]

  --libexecdir=DIR        program executables [EPREFIX/libexec]

  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]

  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]

  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]

  --libdir=DIR            object code libraries [EPREFIX/lib]

  --includedir=DIR        C header files [PREFIX/include]

  --oldincludedir=DIR     C header files for non-gcc [/usr/include]

  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]

  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]

  --infodir=DIR           info documentation [DATAROOTDIR/info]

  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]

  --mandir=DIR            man documentation [DATAROOTDIR/man]

  --docdir=DIR            documentation root [DATAROOTDIR/doc/freetds]

  --htmldir=DIR           html documentation [DOCDIR]

  --dvidir=DIR            dvi documentation [DOCDIR]

  --pdfdir=DIR            pdf documentation [DOCDIR]

  --psdir=DIR             ps documentation [DOCDIR]



Program names:

  --program-prefix=PREFIX            prepend PREFIX to installed program names

  --program-suffix=SUFFIX            append SUFFIX to installed program names

  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names



System types:

  --build=BUILD     configure for building on BUILD [guessed]

  --host=HOST       cross-compile to build programs to run on HOST [BUILD]



Optional Features:

  --disable-option-checking  ignore unrecognized --enable/--with options

  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)

  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]

  --disable-dependency-tracking  speeds up one-time build

  --enable-dependency-tracking   do not reject slow dependency extractors

  --disable-largefile     omit support for large files

  --enable-shared[=PKGS]  build shared libraries [default=yes]

  --enable-static[=PKGS]  build static libraries [default=yes]

  --enable-fast-install[=PKGS]

                          optimize for fast installation [default=yes]

  --disable-libtool-lock  avoid locking (might break parallel builds)

  --disable-libiconv      do not attempt to include libiconv

  --disable-rpath         do not hardcode runtime library paths

  --enable-krb5[=LIB]     enable Kerberos support, optionally with library

  --enable-sspi           enable SSPI support

  --disable-odbc          do not attempt to build odbc the driver

  --disable-apps          skip build of src/apps (including tsql)

  --disable-server        skip build of src/server directory

  --disable-pool          skip build of src/pool directory

  --enable-msdblib        for MS style dblib

  --enable-sybase-compat  enable increased Open Client binary compatibility

  --disable-threadsafe    disable calls to threadsafe fuctions

                          e.g.,gethostbyname_r

  --disable-debug         disable assert and other things

  --enable-extra-checks   enable extra checks on code

  --enable-developing     enable code still in develop

  --enable-odbc-wide      enable wide string support in odbc [experimental]

  --enable-distcheck-build

                          used internally for testing



Optional Packages:

  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]

  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)

  --with-pic              try to use only PIC/non-PIC objects [default=use

                          both]

  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]

  --with-gnu-ld           assume the C compiler uses GNU ld default=no

  --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib

  --without-libiconv-prefix     don't search for libiconv in includedir and libdir

  --with-tdsver=VERSION   TDS protocol version (4.2/4.6/5.0/7.0/7.1) [5.0]

  --with-iodbc=DIR        build odbc driver against iODBC in DIR

  --with-unixodbc=DIR     build odbc driver against unixODBC in DIR

  --with-odbc-nodm=DIR    build odbc using headers in DIR/include

  --with-gnutls           build with TLS support

  --with-openssl          --with-openssl=DIR build with OpenSSL (license NOT

                          compatible cf. User Guide)





Some influential environment variables:

  CC          C compiler command

  CFLAGS      C compiler flags

  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a

              nonstandard directory <lib dir>

  LIBS        libraries to pass to the linker, e.g. -l<library>

  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if

              you have headers in a nonstandard directory <include dir>

  CPP         C preprocessor



Use these variables to override the choices made by `configure' or to help

it to find libraries and programs with nonstandard names/locations.



Report bugs to the package provider.
View Code

编译完修改freetds配置:

[ser2008]

        host = 100.10.10.100

        port = 1433

        tds version = 8.0

        client chaeset = UTF-8

测试连接:

[root@zabbixserver freetds-0.91]#  /usr/local/freetds/bin/tsql -S ser2008 -U user -P passwd

locale is "zh_CN.UTF-8"

locale charset is "UTF-8"

using default charset "UTF-8"

1> use test_database

2> go

1> select * from test_table

2> go

 

unixODBC下载地址:http://www.unixodbc.org/

参考:http://www.cnblogs.com/trams/archive/2011/12/02/2272079.html

安装unixODBC:

[root@zabbixserver unixODBC-2.3.2 ]# ./configure --prefix=/usr/local/unixODBC --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc

[root@zabbixserver unixODBC-2.3.2 ]# make && make install

yum安装的,大致方法一样,但不建议,yum安装的配置文件位置:

[root@zabbixserver etc]# whereis odbcinst

odbcinst: /usr/bin/odbcinst /etc/odbcinst.ini

配置unixODBC:

参考http://blog.csdn.net/gzlaiyonghao/article/details/3838967

注意odbcinst.ini中的Driver名字要和odbc.ini中的一致,odbc.ini中的Server要和freetds中的Server名字一致

[root@zabbixserver etc]# vim odbcinst.ini 

[ODBC]

Trace           = Yes

TraceFile       = /tmp/sql.log

ForceTrace      = Yes

Pooling         = No

[SQLSERVER]

Description     = SQLSERVER

Driver          = /usr/local/freetds/lib/libtdsodbc.so

Driver64          = /usr/local/freetds/lib/libtdsodbc.so

Setup           = /usr/local/freetds/lib/libtds.so

Setup64           = /usr/local/freetds/lib/libtds.so

UsageCount      = 1

CPTimeout       = 5

CPReuse         = 5

FileUsage       = 1



[root@zabbixserver etc]# vim odbc.ini 

[jd_msg]

Driver          = SQLSERVER

Description     = SQLSERVER

Server          = ser2008

Database        = test_database

Port            = 1433

 

报错1:

[root@zabbixserver etc]# isql test_database user password  

isql: error while loading shared libraries: libodbc.so.2: cannot open shared object file: No such file or directory

 

参考http://blog.csdn.net/m_star_jy_sy/article/details/8530706

[root@zabbixserver etc]# echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib"  >> /etc/bashrc

[root@zabbixserver etc]# source /etc/bashrc

 

报错2:

[root@zabbixserver etc]# isql test_database user password 

[ISQL]ERROR: Could not SQLConnect

 

你可能感兴趣的:(linux)