安装过程
注意SQL server需要至少2-3G内存,安装前请检查
整个安装过程非常简单。
可以参考微软的详细文档: 在 Linux 上的 SQL Server 安装指南,包含了在多个Linux分支上安装的方法。
本文用root身份来执行,如果不是root账号,需要在下面的各种命令前面,加上 sudo,就用模拟root账号运行各种命令。
(1)下载 Microsoft SQL Server Red Hat 存储库配置文件
curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo > /etc/yum.repos.d/mssql-server.repo
(2)安装 SQL Server
yum install -y mssql-server
(3)软件包安装完成后,运行mssql conf 安装命令(和2016的安装命令有区别),进行配置。
sqlserver-2017:
/opt/mssql/bin/mssql-conf setup
sqlserver-2016:
/opt/mssql/bin/mssql-server setup
根据提示:
第1,选择版本,这里选择输入 1,就是评估版。
第2,接受条款。
第3,选择语言,这里选择的10,就是简体中文。
第4,输入SA的密码,密码要求是至少8位,包含数字、大小写字母、符号的,强安全性。
第5步,配置程序会创建mssql-server服务,设置开机自启动。
[root@localhost ~]# /opt/mssql/bin/mssql-conf setup
选择 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): 1
可以在以下位置找到此产品的许可条款:
/usr/share/doc/mssql-server 或从以下位置下载:
https://go.microsoft.com/fwlink/?LinkId=855864&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 密码策略要求,因为它不够复杂。
密码必须至少包含 8 个字符,并包含以下四种字符集中的任意三种: 大写字母、小写字母、数字和符号。
输入 SQL Server 系统管理员密码:
确认 SQL Server 系统管理员密码:
正在配置 SQL Server...
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
安装程序已成功完成。SQL Server 正在启动。
(4)配置完后,要验证一下服务是否启动了
从命令的输出看,msql-server服务成功启动,主进程sqlservr,进程号3601
[root@linux ~]# systemctl status mssql-server
● 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 五 2020-04-24 19:13:44 CST; 12min ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 2091 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─2091 /opt/mssql/bin/sqlservr
└─2114 /opt/mssql/bin/sqlservr
4月 24 19:13:52 linux sqlservr[2091]: 2020-04-24 19:13:52.95 spid6s 2020-04-24 19:13:52....red.
4月 24 19:13:52 linux sqlservr[2091]: 2020-04-24 19:13:52.95 spid6s 2020-04-24 19:13:52....red.
4月 24 19:13:54 linux sqlservr[2091]: 2020-04-24 19:13:54.14 spid9s 2020-04-24 19:13:54....db'.
4月 24 19:13:54 linux sqlservr[2091]: 2020-04-24 19:13:54.57 spid9s tempdb 2020-04-24 19...(s).
4月 24 19:13:54 linux sqlservr[2091]: 2020-04-24 19:13:54.58 spid16s Service Broker 2020-...ate.
4月 24 19:13:54 linux sqlservr[2091]: 2020-04-24 19:13:54.59 spid16s Database Mirroring 2...ate.
4月 24 19:13:54 linux sqlservr[2091]: 2020-04-24 19:13:54.67 spid16s 2020-04-24 19:13:54....ted.
4月 24 19:13:54 linux sqlservr[2091]: 2020-04-24 19:13:54.90 spid6s 2020-04-24 19:13:54....red.
4月 24 19:20:34 linux sqlservr[2091]: 2020-04-24 19:20:34.64 spid51 2020-04-24 19:20:34....red.
4月 24 19:20:34 linux sqlservr[2091]: 2020-04-24 19:20:34.70 spid51 2020-04-24 19:20:34....red.
Hint: Some lines were ellipsized, use -l to show in full.
[root@linux ~]#
参见其他码友的建议,换其他方式进行验证:证明已经启动了
[root@linux ~]# ps -ef | grep mssql
mssql 2091 1 0 19:13 ? 00:00:00 /opt/mssql/bin/sqlservr
mssql 2114 2091 4 19:13 ? 00:00:39 /opt/mssql/bin/sqlservr
root 2982 1678 0 19:27 pts/0 00:00:00 grep --color=auto mssql
[root@linux ~]#
(5)如果要从远程连接SQL Server,那么打开防火墙上的SQL Server端口,默认端口是1433
[root@localhost ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
当
[root@linux ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
FirewallD is not running
[root@linux ~]# firewall-cmd --reload
FirewallD is not running
[root@linux ~]#
防火墙没有开就不要管他了
(6)连接数据库(默认为已设置防火墙)
(7)下载客户端工具的源、安装客户端工具
可以参考这个文章:安装sql server的客户端工具
也是非常简单的,先下载,然后安装。
7.1、下载
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
下载操作预览
[root@localhost Desktop]# curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 193 100 193 0 0 106 0 0:00:01 0:00:01 --:--:-- 106
7.2、yum 安装【mssql-tools】
7.2. yum安装命令
yum install -y mssql-tools
7.2.1 yum安装预览
[root@linux ~]# yum install -y mssql-tools
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.tuna.tsinghua.edu.cn
packages-microsoft-com-prod | 3.0 kB 00:00:00
packages-microsoft-com-prod/primary_db | 262 kB 00:00:06
正在解决依赖关系
--> 正在检查事务
---> 软件包 mssql-tools.x86_64.0.17.5.2.1-1 将被 安装
--> 正在处理依赖关系 msodbcsql17 >= 17.3.0.0,它被软件包 mssql-tools-17.5.2.1-1.x86_64 需要
--> 正在检查事务
---> 软件包 msodbcsql17.x86_64.0.17.5.2.1-1 将被 安装
--> 解决依赖关系完成
依赖关系解决
=====================================================================================================
Package 架构 版本 源 大小
=====================================================================================================
正在安装:
mssql-tools x86_64 17.5.2.1-1 packages-microsoft-com-prod 223 k
为依赖而安装:
msodbcsql17 x86_64 17.5.2.1-1 packages-microsoft-com-prod 802 k
事务概要
=====================================================================================================
安装 1 软件包 (+1 依赖软件包)
总下载量:1.0 M
安装大小:2.9 M
Downloading packages:
(1/2): mssql-tools-17.5.2.1-1.x86_64.rpm | 223 kB 00:00:04
(2/2): msodbcsql17-17.5.2.1-1.x86_64.rpm | 802 kB 00:00:05
-----------------------------------------------------------------------------------------------------
总计 188 kB/s | 1.0 MB 00:00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
The license terms for this product can be downloaded from
https://aka.ms/odbc17eula and found in
/usr/share/doc/msodbcsql17/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.
Do you accept the license terms? (Enter YES or NO)
yes
正在安装 : msodbcsql17-17.5.2.1-1.x86_64 1/2
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.
Do you accept the license terms? (Enter YES or NO)
yes
正在安装 : mssql-tools-17.5.2.1-1.x86_64 2/2
验证中 : mssql-tools-17.5.2.1-1.x86_64 1/2
验证中 : msodbcsql17-17.5.2.1-1.x86_64 2/2
已安装:
mssql-tools.x86_64 0:17.5.2.1-1
作为依赖被安装:
msodbcsql17.x86_64 0:17.5.2.1-1
完毕!
[root@linux ~]#
7.2.3 连接sql sever方式1【为了在服务器上进行操作】
这里用sqlcmd来连接sql server,
可能会有一些错误:
[root@linux ~]# sqlcmd
-bash: sqlcmd: 未找到命令
跟新工具包命令:
sudo yum check-update
sudo yum update mssql-tools
可选:在bash shell中将其添加/opt/mssql-tools/bin/
到PATH环境变量中。
要使bash shell可以通过sqlcmd / bcp访问登录会话,请使用以下命令在**〜/ .bash_profile文件中修改PATH**:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
为了使SQLCMD / BCP从bash shell的交互式/非登录会话访问,修改PATH中的**〜/ .bashrc**文件,使用下面的命令:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
验证sqlcmd
[root@linux ~]# sqlcmd -S localhost -U sa
Password:
1> select db_name();
2> go
--------------------------------------------------------------------------------------------------------------------------------
master
(1 rows affected)
1> create database test;
2> go
1> use test;
2> go
已将数据库上下文更改为 "test"。
1> select * into tb from sys.tables;
2> go
(1 rows affected)
1>
7.2.4 连接方式二,进行远程方式连接
下面是一些命令行参数。
到这里全部结束;