Linux下FreeTDS使用及问题总结

本人Linux版本: RHEL5.8 (32位)

源码安装包(设计开发使用Freetds建议选择源码编译、安装生成与自己系统适配的相关库文件): Freetds源码安装包地址

编码使用相关参考: Linux c使用Freetds连接SQLServer

主要说下个人使用的时候遇到的几个问题

1、连接失败

错误提示:
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20017 (severity 9):
        Unexpected EOF from the server
        OS error 115, "Operation now in progress"
Error 20002 (severity 9):
        Adaptive Server connection failed

如果确定SQLServer数据库是开着的,网络是畅通的,而出现这个的原因建议修改Freetds版本。

键入:tsql -C

Linux下FreeTDS使用及问题总结_第1张图片 

如上, 配置文件路径为在 /usr/local/etc/freetds.conf ,尽管你的 /etc/下面可能也有这个配置文件,但却不是默认读取的配置,改了也不生效。

修改全部配置[global]节点下:

tds version= 7.0 或者 7.1 8.0 ,总之为了提高下使用的版本

再次尝试连接:tsql -H 数据库主机IP  -U 用户名 -P 密码 -p 端口 


2、编码问题

本人是用Linux C 编程,写入数据库时发现中文乱码,个人代码用UTF-8或者GBK都编译试了下,没有效果。

一般是由于SQLServer 默认使用GBK之类的中文编码,修改配置文件,在全局配置中设置编码

client charset= GBK 

问题解决。用php编码的同学有反应说需要编码时候用iconv函数进行转码,Linux C的话自己试了下不需要这个步骤。


欢迎交流。

你可能感兴趣的:(Linux,C,Linux,freetds,tsql,Sqlserver,linux,数据库)