如何在 CentOS 7.2上安装SQL Server 2017

目录

1. 概述

SQL Server(mssql-server)是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案,使用非常广泛,那么如何在Linux上安装SQLServer呢?

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. 下载安装SQL Server

3.1 检查系统是否已经安装了SQL Server(mssql-server)
[root@myhost ~]# rpm -qa |grep mssql-server
3.2 下载SQL Server存储库配置文件
[root@myhost ~]# cd /etc/yum.repos.d/
[root@myhost yum.repos.d]# ll
总用量 28
-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

[root@myhost yum.repos.d]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   232  100   232    0     0    337      0 --:--:-- --:--:-- --:--:--   338
[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]# cat mssql-server.repo 
[packages-microsoft-com-mssql-server-2017]
name=packages-microsoft-com-mssql-server-2017
baseurl=https://packages.microsoft.com/rhel/7/mssql-server-2017/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
3.3 yum安装SQL Server
[root@myhost yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: base extras packages-microsoft-com-mssql-server-2017 updates
Cleaning up list of fastest mirrors
[root@myhost yum.repos.d]# yum makecache
[root@myhost yum.repos.d]# yum install -y mssql-server
[root@myhost ~]# rpm -qa |grep mssql-server
mssql-server-14.0.3401.7-2.x86_64

#查看SQL Server安装文件
[root@myhost ~]# rpm -ql  mssql-server-14.0.3401.7-2.x86_64
/opt/mssql/bin
/opt/mssql/bin/compress-dump.sh
/opt/mssql/bin/crash-support-functions.sh
/opt/mssql/bin/generate-sql-dump.sh
/opt/mssql/bin/handle-crash.sh
/opt/mssql/bin/mssql-conf  ######
/opt/mssql/bin/paldumper
/opt/mssql/bin/sqlservr
/opt/mssql/lib
/opt/mssql/lib/libc++.so.1
/opt/mssql/lib/libc++abi.so.1
/opt/mssql/lib/libsqlvdi.so
/opt/mssql/lib/libunwind-x86_64.so.8
/opt/mssql/lib/libunwind.so.8
/opt/mssql/lib/loc
/opt/mssql/lib/loc/de_DE
/opt/mssql/lib/loc/de_DE/LC_MESSAGES
/opt/mssql/lib/loc/de_DE/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/en_US
/opt/mssql/lib/loc/en_US/LC_MESSAGES
/opt/mssql/lib/loc/en_US/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/es_ES
/opt/mssql/lib/loc/es_ES/LC_MESSAGES
/opt/mssql/lib/loc/es_ES/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/fr_FR
/opt/mssql/lib/loc/fr_FR/LC_MESSAGES
/opt/mssql/lib/loc/fr_FR/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/it_IT
/opt/mssql/lib/loc/it_IT/LC_MESSAGES
/opt/mssql/lib/loc/it_IT/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/ja_JP
/opt/mssql/lib/loc/ja_JP/LC_MESSAGES
/opt/mssql/lib/loc/ja_JP/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/ko_KR
/opt/mssql/lib/loc/ko_KR/LC_MESSAGES
/opt/mssql/lib/loc/ko_KR/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/pt_BR
/opt/mssql/lib/loc/pt_BR/LC_MESSAGES
/opt/mssql/lib/loc/pt_BR/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/ru_RU
/opt/mssql/lib/loc/ru_RU/LC_MESSAGES
/opt/mssql/lib/loc/ru_RU/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/zh_CN
/opt/mssql/lib/loc/zh_CN/LC_MESSAGES
/opt/mssql/lib/loc/zh_CN/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/loc/zh_TW
/opt/mssql/lib/loc/zh_TW/LC_MESSAGES
/opt/mssql/lib/loc/zh_TW/LC_MESSAGES/sqlservr.mo
/opt/mssql/lib/mssql-conf
/opt/mssql/lib/mssql-conf/checkinstall.sh
/opt/mssql/lib/mssql-conf/checkrunninginstance.sh
/opt/mssql/lib/mssql-conf/collations.txt
/opt/mssql/lib/mssql-conf/invokesqlservr.sh
/opt/mssql/lib/mssql-conf/loc
/opt/mssql/lib/mssql-conf/loc/mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-de_DE.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-en_US.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-es_ES.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-fr_FR.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-it_IT.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-ja_JP.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-ko_KR.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-pt_BR.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-ru_RU.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-zh_CN.mo
/opt/mssql/lib/mssql-conf/loc/mo/mssql-conf-zh_TW.mo
/opt/mssql/lib/mssql-conf/mssql-conf.py
/opt/mssql/lib/mssql-conf/mssqlconfhelper.py
/opt/mssql/lib/mssql-conf/mssqlsettings.py
/opt/mssql/lib/mssql-conf/mssqlsettingsmanager.py
/opt/mssql/lib/mssql-conf/set-collation.sh
/opt/mssql/lib/secforwarderxplat.sfp
/opt/mssql/lib/sqlagent.sfp
/opt/mssql/lib/sqlservr.sfp
/opt/mssql/lib/system.certificates.sfp
/opt/mssql/lib/system.common.sfp
/opt/mssql/lib/system.netfx.sfp
/opt/mssql/lib/system.security.sfp
/opt/mssql/lib/system.sfp
/usr/lib/systemd/system/mssql-server.service
/usr/share/doc/mssql-server/THIRDPARTYNOTICES.TXT
/usr/share/doc/mssql-server/THIRDPARTYNOTICES_UBUNTU_CONTAINER_16.04.txt
/usr/share/doc/mssql-server/license_Eval_Linux.txt
/usr/share/doc/mssql-server/license_Eval_Linux_Chinese (Simplified).txt
/usr/share/doc/mssql-server/license_Eval_Linux_Chinese (Traditional).txt
/usr/share/doc/mssql-server/license_Eval_Linux_French.txt
/usr/share/doc/mssql-server/license_Eval_Linux_German.txt
/usr/share/doc/mssql-server/license_Eval_Linux_Italian.txt
/usr/share/doc/mssql-server/license_Eval_Linux_Japanese.txt
/usr/share/doc/mssql-server/license_Eval_Linux_Korean.txt
/usr/share/doc/mssql-server/license_Eval_Linux_Portuguese (Brazil).txt
/usr/share/doc/mssql-server/license_Eval_Linux_Russian.txt
/usr/share/doc/mssql-server/license_Eval_Linux_Spanish.txt
/usr/share/doc/mssql-server/license_Std_Linux.txt
/usr/share/doc/mssql-server/license_Std_Linux_Chinese (Simplified).txt
/usr/share/doc/mssql-server/license_Std_Linux_Chinese (Traditional).txt
/usr/share/doc/mssql-server/license_Std_Linux_French.txt
/usr/share/doc/mssql-server/license_Std_Linux_German.txt
/usr/share/doc/mssql-server/license_Std_Linux_Italian.txt
/usr/share/doc/mssql-server/license_Std_Linux_Japanese.txt
/usr/share/doc/mssql-server/license_Std_Linux_Korean.txt
/usr/share/doc/mssql-server/license_Std_Linux_Portuguese (Brazil).txt
/usr/share/doc/mssql-server/license_Std_Linux_Russian.txt
/usr/share/doc/mssql-server/license_Std_Linux_Spanish.txt
/usr/share/man/man1/mssql-conf.1.gz
/usr/share/man/man1/sqlservr.1.gz
3.4 执行命令安装数据库
[root@myhost ~]# ll /opt/mssql/bin/mssql-conf[root@myhost ~]# ll /opt/mssql/bin/mssql-conf
-rwxrwxr-x. 1 root root 277 6月  28 23:35 /opt/mssql/bin/mssql-conf

[root@myhost ~]# /opt/mssql/bin/mssql-conf setup   #此处需要选择SQLServer版本(一般选择开发版本:免费,无生产许可),语言,以及系统管理员的密码,密码应符合要求(备注:请确保为 系统管理员SA 帐户指定强密码最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。

选择 SQL Server 的一个版本:
  1) Evaluation (免费,无生产许可,180 天限制)
  2) Developer (免费,无生产许可)
  3) Express (免费)
  4) Web (付费版)
  5) Standard (付费版)
  6) Enterprise (付费版)
  7) Enterprise Core (付费版)
  8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。

可在以下位置找到有关版本的详细信息:
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x804

使用此软件的付费版本需要通过以下途径获取单独授权
Microsoft 批量许可计划。
选择付费版本即表示你具有适用的
要安装和运行此软件的就地许可证数量。

输入版本(1-8): 2
可以在以下位置找到此产品的许可条款:
/usr/share/doc/mssql-server 或从以下位置下载:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x804

可以从以下位置查看隐私声明:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804

接受此许可条款吗? [Yes/No]:yes


选择 SQL Server 的语言:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Русский
(10) 中文 – 简体
(11) 中文 (繁体)
输入选项 1-11:10
输入 SQL Server 系统管理员密码: 
确认 SQL Server 系统管理员密码: 
正在配置 SQL Server...

ForceFlush is enabled for this instance. 
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
安装程序已成功完成。SQL Server 正在启动。

3.5 数据库文件在磁盘上的存储形式
  1. 主数据库文件:*.mdf
  2. 辅助数据文件:*.ndf
  3. 日志文件:*.ldf
  4. 文件组
[root@myhost ~]# find / -name *.mdf 
/var/opt/mssql/data/master.mdf
/var/opt/mssql/data/model.mdf
/var/opt/mssql/data/msdbdata.mdf
/var/opt/mssql/data/tempdb.mdf

[root@myhost ~]# find / -name *.ldf
/var/opt/mssql/data/mastlog.ldf
/var/opt/mssql/data/modellog.ldf
/var/opt/mssql/data/msdblog.ldf
/var/opt/mssql/data/templog.ldf

[root@myhost ~]# find / -name *.ndf

4. 查看SQL Server是否启动成功

[root@myhost ~]# systemctl status mssql-server.service
● mssql-server.service - Microsoft SQL Server Database Engine
   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2021-08-24 11:38:15 CST; 3min 24s ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
 Main PID: 7777 (sqlservr)
   CGroup: /system.slice/mssql-server.service
           ├─7777 /opt/mssql/bin/sqlservr
           └─7805 /opt/mssql/bin/sqlservr

8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:18.99 spid5s      2021-08-24 11:38:18.99 spid9s      Recovery is...uired.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:18.99 spid5s      Recovery is writing a checkpoint in database '...uired.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.11 spid9s      2021-08-24 11:38:19.11 spid9s      Polybase fe...abled.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.11 spid9s      2021-08-24 11:38:19.11 spid9s      Clearing te...abase.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.48 spid9s      2021-08-24 11:38:19.48 spid9s      Starting up...mpdb'.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.67 spid9s      tempdb 2021-08-24 11:38:19.67 spid9s      The ...le(s).
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.68 spid22s     Service Broker 2021-08-24 11:38:19.68 spid22s ...state.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.68 spid22s     Database Mirroring 2021-08-24 11:38:19.68 spid...state.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.71 spid22s     2021-08-24 11:38:19.71 spid22s     Service Bro...arted.
8月 24 11:38:19 myhost sqlservr[7777]: 2021-08-24 11:38:19.79 spid5s      2021-08-24 11:38:19.79 spid5s      Recovery is...uired.
Hint: Some lines were ellipsized, use -l to show in full.

[root@myhost ~]# ps -ef |grep mssql
mssql      7777      1  0 11:38 ?        00:00:00 /opt/mssql/bin/sqlservr
mssql      7805   7777  3 11:38 ?        00:00:07 /opt/mssql/bin/sqlservr
root       8427   6538  0 11:42 pts/1    00:00:00 grep --color=auto mssql

[root@myhost ~]# netstat -lntup |grep sqlservr
tcp        0      0 0.0.0.0:1433            0.0.0.0:*               LISTEN      7805/sqlservr       
tcp        0      0 127.0.0.1:1434          0.0.0.0:*               LISTEN      7805/sqlservr       
tcp6       0      0 :::1433                 :::*                    LISTEN      7805/sqlservr       
tcp6       0      0 ::1:1434                :::*                    LISTEN      7805/sqlservr   

5. 用navicat测试是否能够连接

注意:有时候Navicat并没有初始化安装sqlncli, 所以连接的时候会报 没有默认驱动,如图:
在这里插入图片描述
解决方法:先关闭Navicat,然后找到navicat安装目录(我这里的目录是: F:\Program Files (x86)\PremiumSoft\Navicat Premium 12)在安装目录中找到对应驱动sqlncli(计算机是64位所以选择sqlncli_x64.msi进行安装即可,安装过程省略)。

在这里插入图片描述
上述驱动安装完毕之后,再次打开Navicat,再次进行连接测试
在这里插入图片描述

注意:sqlsever安装时默认的系统管理员账户不是root,而是sa或SA。
在这里插入图片描述
以下步骤是使用Navicat连接sqlsever服务器进行简单操作数据库:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值