#install unixODBCsudo yum install unixODBC unixODBC-devel -y#install freetds#1st download freetdscd wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz#2nd unpack freetdstar -xzvf freetds-stable.tgz#configure make make install freetdscd freetds-0.91/./configure -prefix=/usr/local/freetds -with-tdsver=8.0 -enable-msdblib -with-gnu-ld -enable-shared -enable-static sudo makesudo make install #建立odbc driver描述文件 vim tds.driver [TDS]Description=driver to connect to MS SqlDriver=/usr/local/lib/libtdsodbc.soSetup=/usr/lib64/libtdsS.so#install freetds driver sudo odbcinst -i -d -f tds.driver #建立数据源描述文件 vim mydatasource [devserver]description=sql2000 on devserverdriver=TDSserver=192.168.0.22port=1433user=sapassword=******database=testdbTDS_Version=8.0#install datasource odbcinst -i -s -f mydatasource #测试 isql devserver sa passwd -v
如果unixODBC连接失败,isql测试的时候加上-v可以打印出详细信息便于纠错。
经我测试,数据源设置中不能有中文,否则isql测试同样出现“意外EOF”错误.
二、java中使用sun.jdbc.odbc.JdbcOdbcDriver链接上面配置的数据源,或者指定配置的driver,然后设置服务器的详细信息也可以连接。
sun.jdbc.odbc.JdbcOdbcDriver c =(JdbcOdbcDriver) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") .newInstance(); //String URL = "jdbc:odbc:devserver";//String URL = "jdbc:odbc:driver=TDS;server=192.168.0.22;port=1433;database=lcmis;uid=sa;pwd=*****";String URL = "jdbc:odbc:driver=TDS;server=192.168.0.22;port=1433;database=lcmis;uid=sa;pwd=*****";