Linux环境下通过ODBC访问MSSql Server

为了解决Linux系统连接MSSql Server的问题,微软为Linux系统提供了连接MSSql Server的ODBC官方驱动。通过官方驱动,Linux程序可以方便地对MSSql Server进行访问。

官网提供了多个版本的驱动,分别用于以下发行版的Linux系统,链接地址https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017,打开连接后,滚动到下面,我选择Microsoft ODBC Driver 11 for SQL Server 下的Linux的版本,

1. 下载安装包

Red Hat 6:https://www.microsoft.com/en-us/download/details.aspx?id=36437

2. 安装unixODBC 2.3.0,去官网http://www.unixodbc.org/下载,将下载的tar文件文件,放在MSSQL解压目录,同build_dm.sh相同的位置

# 以red hat 6版本为例
tar xzf msodbcsql-11.0.2270.0.tar.gz
cd msodbcsql-11.0.2270.0
./build_dm.sh  --download-url=file://unixODBC-2.3.0.tar.gz

中间过程中会有一个提示,输入YES继续。

因为命令行有提示Run the command 'cd/tmp/unixODBC.30130.2651.301/unixODBC-2.3.0;make install' to install the driver manager,所以按照提示执行

cd /tmp/unixODBC.30130.2651.301/unixODBC-2.3.0

make install

将会完成对unixODBC的安装,安装完成之后执行

odbc_config --odbcinstini

可以得到配置文件的位置,在执行后面的步骤之前可以提前备份配文件。

3. 安装Microsoft ODBC Driver 11 for SQL Server on Linux

接着回到sqlncli目录,执行./install.sh verify,可以得到前五个检查项为OK就可以执行安装了。./install.sh install

执行./install.sh install进行安装,需要读完一段软件使用许可,输入YES才能继续,又见微软的版权。

出现提示installed就可以使用odbcinst -q -d -n "SQL Server Native Client 11.0"检查是否安装完成了。

4. 通过命令行连接到数据库服务器

安装完驱动后就可以通过驱动自带的命令行工具测试连接了:

sqlcmd -S 192.168.1.10 -U sa -P sa -d master -Q 'select "Hello World"'

假如连接成功,该命令就会输出“Hello World”的查询结果

5. 配置unixODBC数据源

sqlcmd命令除了可以通过指定地址、用户名密码连接数据库外,还可以通过指定数据源名称连接数据库。数据源可以通过unixODBC所提供的odbcinst命令进行配置:

1). 建立模版配置文件 template.ini,内容如下

 

[DataSourceName]   #这个是DSN名字,根据实际情况修改

Driver = ODBC Driver 11 for SQL Server

Server = 192.168.1.10

UID = sa

PWD = sa

Database = master

 

2). 导入配置

odbcinst -i -s -l -f template.ini

执行完之后,可以再次通过sqlcmd命令工具来测试连接

sqlcmd -S DataSourceName -Q 'select "Hello World"'

该命令和前面的直接指定IP地址和用户名密码的命令得到同样的结果

你可能感兴趣的:(Linux环境下通过ODBC访问MSSql Server)