在Linux系统中通过ODBC连接SQLServer数据库,需要先完成unixODBC驱动管理器、微软ODBC驱动的安装,再完成相关配置才能实现正常连接。

安装前准备
首先需要确认当前Linux发行版的类型和版本,不同发行版的包管理命令存在差异,本文以Ubuntu 20.04和CentOS 7为例说明,其他发行版可参考对应包管理命令调整。
同时需要提前准备好SQLServer数据库的连接信息,包括数据库服务器的IP地址、端口号、数据库名称、登录用户名和密码。
安装unixODBC驱动管理器
unixODBC是Linux下常用的ODBC驱动管理器,大部分ODBC驱动都依赖它运行,优先安装该组件。
Ubuntu/Debian系统安装
执行以下命令更新软件源并安装unixODBC:
# 更新软件源 sudo apt-get update # 安装unixODBC及开发依赖 sudo apt-get install -y unixodbc unixodbc-dev
CentOS/RHEL系统安装
执行以下命令通过yum安装unixODBC:
# 安装unixODBC及开发依赖 sudo yum install -y unixODBC unixODBC-devel
验证安装结果
安装完成后执行以下命令查看unixODBC版本,确认安装成功:
odbcinst -j
如果输出类似以下内容,说明安装正常:
unixODBC 2.3.7 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
安装SQLServer ODBC驱动
微软官方提供了SQLServer的ODBC驱动,需要根据系统版本选择对应的安装方式。
Ubuntu系统安装微软ODBC驱动
首先添加微软的软件源,再安装驱动:
# 安装依赖工具 sudo apt-get install -y curl apt-transport-https # 添加微软签名密钥 curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - # 添加软件源,Ubuntu 20.04对应focal版本 sudo curl -o /etc/apt/sources.list.d/mssql-release.list https://packages.microsoft.com/config/ubuntu/20.04/prod.list # 更新软件源 sudo apt-get update # 安装ODBC驱动 sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17 # 可选安装命令行工具sqlcmd sudo ACCEPT_EULA=Y apt-get install -y mssql-tools # 将sqlcmd路径添加到环境变量 echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
CentOS系统安装微软ODBC驱动
执行以下命令添加软件源并安装驱动:
# 安装依赖 sudo yum install -y curl # 添加微软签名密钥 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc # 添加软件源,CentOS 7对应7版本 sudo curl -o /etc/yum.repos.d/mssql-release.repo https://packages.microsoft.com/config/rhel/7/prod.repo # 安装ODBC驱动 sudo ACCEPT_EULA=Y yum install -y msodbcsql17 # 可选安装sqlcmd工具 sudo ACCEPT_EULA=Y yum install -y mssql-tools # 添加环境变量 echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
验证驱动安装
执行以下命令查看已安装的ODBC驱动列表:
odbcinst -q -d
如果输出中包含ODBC Driver 17 for SQL Server,说明驱动安装成功。
配置ODBC连接参数
ODBC的配置文件分为两个,/etc/odbcinst.ini存放驱动配置,/etc/odbc.ini存放数据源配置。
配置驱动信息
打开/etc/odbcinst.ini文件,添加以下内容:
[ODBC Driver 17 for SQL Server] Description=Microsoft ODBC Driver 17 for SQL Server Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.so UsageCount=1
如果驱动文件路径和默认安装路径不一致,需要根据实际安装位置调整Driver字段的值。
配置数据源
打开/etc/odbc.ini文件,添加对应的数据源配置:
[SQLServerDSN] Driver=ODBC Driver 17 for SQL Server Server=192.168.0.1,1433 Database=test_db UID=sa PWD=your_password
其中Server字段填写SQLServer的IP和端口,Database是目标数据库名,UID和PWD分别是登录用户名和密码,SQLServerDSN是自定义的数据源名称,后续连接时使用。
验证连接是否生效
可以通过两种方式验证连接是否正常。
使用isql工具验证
执行以下命令测试连接:
isql -v SQLServerDSN
如果连接成功,会进入isql交互界面,输入quit可以退出。
使用sqlcmd工具验证
执行以下命令直接连接数据库并执行查询:
sqlcmd -S 192.168.0.1,1433 -U sa -P your_password -d test_db -Q "SELECT @@VERSION"
如果返回SQLServer的版本信息,说明连接完全正常。
常见问题解决
- 如果安装驱动时提示依赖缺失,需要根据提示安装对应的依赖包,比如
libcurl、openssl等。 - 如果连接时提示权限不足,检查
/etc/odbc.ini和/etc/odbcinst.ini的读写权限,确保当前用户有访问权限。 - 如果连接超时,检查SQLServer是否开启了远程连接,防火墙是否放行了对应端口。