如何在Linux上安装sqlsever客户端连接工具

目录

1. 概述

SQL Server服务端安装完成之后,我们需要使用一种工具,可以在 SQL Server 上运行 TRANSACT-SQL 语句进行连接。在windows上,我们一般使用Navicat来连接SQL Server(mssql-server)服务器并进行数据库操作。但是在linux服务器上,我们需要格外安装SQL Server命令行工具: sqlcmd 和 bcp 。那麽如何在Linux上安装SQL Server命令行工具呢?

2. 环境准备

2.1 机器准备
服务器ip主机名系统版本
192.168.2.25myhostCentos7.2
2.2 系统环境
[root@myhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@myhost ~]#  firewall-cmd --state							 #查看防火墙的状态
running
[root@myhost ~]#  firewall-cmd --list-ports                       #查看防火墙已经开放的端口
[root@myhost ~]#  firewall-cmd --list-services                    #查看防火墙开放的服务
dhcpv6-client ssh
#httpd服务默认的端口是80,防火墙允许80/tcp端口访问 
[root@myhost ~]#  firewall-cmd --zone=public --permanent --add-port=80/tcp
success
#SQLServer服务端默认的端口是1433,防火墙允许1433/tcp端口访问 
[root@myhost ~]#  firewall-cmd --zone=public --permanent --add-port=1433/tcp
success
[root@myhost ~]#  firewall-cmd --reload                                       	#重新加载防火墙配置
success 
[root@myhost ~]#  setenforce 0  &&    getenforce
Permissive
[root@myhost ~]#  sed -i  "s/SELINUX=enforcing/SELINUX=disabled/g"  /etc/sysconfig/selinux 
[root@myhost ~]#  cat /etc/sysconfig/selinux
[root@myhost ~]# ping www.baidu.com
PING www.a.shifen.com (220.181.38.150) 56(84) bytes of data.
64 bytes from 220.181.38.150: icmp_seq=1 ttl=52 time=33.6 ms
64 bytes from 220.181.38.150: icmp_seq=2 ttl=52 time=34.8 ms
64 bytes from 220.181.38.150: icmp_seq=3 ttl=52 time=35.2 ms
......

3. 安装

3.1 查看是否已经安装了命令行工具
[root@myhost ~]# which sqlcmd
/usr/bin/which: no sqlcmd in (/usr/local/jdk1.8.0_131/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@myhost ~]# find / -name sqlcmd
3.2 下载SQL Server命令行工具存储库配置文件
[root@myhost ~]# cd /etc/yum.repos.d/
[root@myhost yum.repos.d]# ll
总用量 32
-rw-r--r--. 1 root root 1664 12月  9 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 12月  9 2015 CentOS-CR.repo
-rw-r--r--. 1 root root  649 12月  9 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  290 12月  9 2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 12月  9 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 12月  9 2015 CentOS-Sources.repo
-rw-r--r--. 1 root root 1952 12月  9 2015 CentOS-Vault.repo
-rw-r--r--. 1 root root  232 8月  24 11:24 mssql-server.repo

[root@myhost yum.repos.d]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   193  100   193    0     0    509      0 --:--:-- --:--:-- --:--:--   510
[root@myhost yum.repos.d]# ll
总用量 36
-rw-r--r--. 1 root root 1664 12月  9 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 12月  9 2015 CentOS-CR.repo
-rw-r--r--. 1 root root  649 12月  9 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  290 12月  9 2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 12月  9 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 12月  9 2015 CentOS-Sources.repo
-rw-r--r--. 1 root root 1952 12月  9 2015 CentOS-Vault.repo
-rw-r--r--. 1 root root  193 8月  24 17:11 msprod.repo ######
-rw-r--r--. 1 root root  232 8月  24 11:24 mssql-server.repo

[root@myhost yum.repos.d]# cat msprod.repo
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
3.3 进行yum安装

如果你有以前版本的 mssql 工具 安装,请删除任何较旧的 unixODBC 程序包。

[root@myhost yum.repos.d]# rpm -qa |grep unixODBC-utf16
[root@myhost yum.repos.d]# rpm -qa |grep unixODBC-utf16-devel
[root@myhost yum.repos.d]# yum remove unixODBC-utf16 unixODBC-utf16-devel
已加载插件:fastestmirror
参数 unixODBC-utf16 没有匹配
参数 unixODBC-utf16-devel 没有匹配
不删除任何软件包

运行以下命令以安装 mssql 工具 与 unixODBC 开发人员包。

[root@myhost yum.repos.d]# yum install -y mssql-tools unixODBC-devel
[root@myhost yum.repos.d]# rpm -qa  mssql-tools unixODBC-devel
mssql-tools-17.8.1.1-1.x86_64
unixODBC-devel-2.3.7-1.rh.x86_64

#查看安装文件
[root@myhost yum.repos.d]# rpm -ql mssql-tools-17.8.1.1-1.x86_64
/opt/mssql-tools/bin
/opt/mssql-tools/bin/bcp
/opt/mssql-tools/bin/sqlcmd
/opt/mssql-tools/share
/opt/mssql-tools/share/resources
/opt/mssql-tools/share/resources/en_US
/opt/mssql-tools/share/resources/en_US/BatchParserGrammar.dfa
/opt/mssql-tools/share/resources/en_US/BatchParserGrammar.llr
/opt/mssql-tools/share/resources/en_US/SQLCMD.rll
/opt/mssql-tools/share/resources/en_US/bcp.rll
/usr/share/doc/mssql-tools
/usr/share/doc/mssql-tools/LICENSE.txt
/usr/share/doc/mssql-tools/THIRDPARTYNOTICES.txt

#查看安装文件
[root@myhost yum.repos.d]#  rpm -ql unixODBC-devel-2.3.7-1.rh.x86_64
/usr/include
/usr/include/autotest.h
/usr/include/odbcinst.h
/usr/include/odbcinstext.h
/usr/include/sql.h
/usr/include/sqlext.h
/usr/include/sqlspi.h
/usr/include/sqltypes.h
/usr/include/sqlucode.h
/usr/include/unixodbc_conf.h
/usr/include/uodbc_extras.h
/usr/include/uodbc_stats.h
/usr/lib64/libodbc.la
/usr/lib64/libodbccr.la
/usr/lib64/libodbcinst.la
/usr/lib64/pkgconfig
/usr/lib64/pkgconfig/odbc.pc
/usr/lib64/pkgconfig/odbccr.pc
/usr/lib64/pkgconfig/odbcinst.pc
3.4 添加 mssql-tools工具的二进制文件路径添加到环境变量
[root@myhost yum.repos.d]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> /etc/profile
[root@myhost yum.repos.d]# tail -5 /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export PATH="$PATH:/opt/mssql-tools/bin"
[root@myhost yum.repos.d]# source  /etc/profile
[root@myhost yum.repos.d]# echo $PATH
/usr/local/jdk1.8.0_131/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/mssql-tools/bin
[root@myhost yum.repos.d]# which sqlcmd
/opt/mssql-tools/bin/sqlcmd
3.5 测试连接

如何使用sqlcmd工具本地连接到SQL Server?

命令:sqlcmd -S localhost -U SA -P “YourPassword”
参数说明:-S 主机名称,-U 用户名,-P 密码。

[root@myhost yum.repos.d]# sqlcmd -S localhost -U SA -P 
Sqlcmd: '-P': Missing argument. Enter '-?' for help.

[root@myhost yum.repos.d]# sqlcmd -S localhost -U SA -P "YourPassword"
1> 
1> use master;
2> go
已将数据库上下文更改为 "master"。
1> select name from sys.databases;
2> go
name                                                                                                                            
--------------------------------------------------------------------------------------------------------------------------------
master                                                                                                                          
tempdb                                                                                                                          
model                                                                                                                           
msdb 
                                                                                                                           
(4 rows affected)


1> 
1> use master;
2> go
已将数据库上下文更改为 "master"。
1>  select name,database_id from sys.databases;
2> go
name                                                                                                                             database_id
-------------------------------------------------------------------------------------------------------------------------------- -----------
master                                                                                                                                     1
tempdb                                                                                                                                    2
model                                                                                                                                      3
msdb                                                                                                                                       4

(4 rows affected)
1> 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值