Linux安装MSSQL2017使用mssql

Stella981
• 阅读 767

Linux上安装SQL Server 2017

1.下载 Microsoft SQL Server 2017 Red Hat 存储库配置文件:

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

2.运行以下命令以安装 SQL Server:

sudo yum install -y mssql-server

3.包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。

sudo /opt/mssql/bin/mssql-conf setup

4.systemctl status mssql-server

systemctl status mssql-server

5.防火墙上打开 SQL Server 端口。 默认的 SQL Server 端口为 TCP 1433

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

安装方法 2 :

wget https://packages.microsoft.com/rhel/7/mssql-server-2017/mssql-server-14.0.3281.6-2.x86\_64.rpm
yum install bzip2 gdb libsss_nss_idmap cyrus-sasl cyrus-sasl-gssapi
rpm -ivh mssql-server-14.0.3281.6-2.x86_64.rpm
/opt/mssql/bin/mssql-conf setup

*********************************************************************************
只有2G的内存,需要修改以后才能安装:

[root@localhost bin]# mv sqlservr sqlservr.old
[root@localhost bin]# python
>>> a = open("sqlservr.old", "rb").read()
>>> b = a.replace("\x80\x10\xb7\xc1", "\x00\x80\x84\x1e")
>>> open("sqlservr", "wb").write(b)

[root@localhost bin]# chmod +x sqlservr
[root@localhost bin]# /opt/mssql/bin/mssql-conf setup
*********************************************************************************

安装命令行工具

1.下载 Microsoft Red Hat 存储库配置文件。

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

2.如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel

3.运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools。

sudo yum install -y mssql-tools unixODBC-devel  msodbcsql17

4.向 PATH 环境变量

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

5.使用 sqlcmd 本地连接到新的 SQL Server 实例

sqlcmd -S localhost,1433 -U SA -P ''

安装SQLSERVER代理

1.2017CU4及更高版本,启用代理方法

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server

2.2017CU3及更低版本,需安装代理

sudo yum install mssql-server-agent
sudo systemctl restart mssql-server

已安装,需要更新

sudo yum check-update
sudo yum update mssql-server-agent
sudo systemctl restart mssql-server

mssql-conf进行参数配置

Agent 启用SQL Server代理
Collation 设置一个新的排序规则
Customer feedback 选择是否发送反馈给微软
Database Mail Profile 设置默认数据库邮件配置
Default data directory 修改新的数据文件的默认路径
Default log directory 修改新的日志文件的默认路径
Default master database file directory 修改master数据库的默认路径
Default master database file name 修改master数据库文件的名字
Default dump directory 修改新的内存DUMP和其他排错文件的默认路径
Defalut error log directory 修改新的SQL Server错误日志文件、默认跟踪、
系统健康会话扩展事件和Hekaton会话扩展事件文件
Default backup directory 修改新的备份文件的默认路径
Dump type 选择内存DUMP文件收集的DUMP类型
High availability 启用可用性组
Local Audit directory 配置一个添加本地审核文件的目录
Locale 配置SQL Server使用的地区(配置语言环境)
Memory limit 配置SQL Server内存限制
TCP port 修改SQL Server连接监听的端口
TLS 配置TLS(Transport Level Security)
Traceflags 设置服务使用的跟踪标识

.查看当前设置

cat /var/opt/mssql/mssql.conf

[sqlagent]

enabled = true

[EULA]
accepteula = Y

[network]
tcpport = 15559

[telemetry]
customerfeedback = false

[filelocation]
defaultdatadir = /data/mssqlserver/data

0.修改需要重启服务

systemctl stop mssql-server.service

systemctl start mssql-server.service

1.启用SQL Server代理(默认,SQL Server代理是禁用的)
/opt/mssql/bin/mssql-conf set sqlagent.enabled true

2.修改SQL Server排序规则(默认,对于所有版本该值设置为true)
/opt/mssql/bin/mssql-conf set-collation

3.配置客户反馈
/opt/mssql/bin/mssql-conf set telemetry.customerfeedback false

4.修改默认数据和日志目录位置
mkdir /data/mssqlserver/data -p
chown mssql /data/mssqlserver/data
chgrp mssql /data/mssqlserver/data
/opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /data/mssqlserver/data

5.修改默认master数据库文件目录位置
mkdir /data/mssqlserver/masterdatabasedir -p
chown mssql /data/mssqlserver/masterdatabasedir
chgrp mssql /data/mssqlserver/masterdatabasedir
/opt/mssql/bin/mssql-conf set filelocation.masterdatafile /data/mssqlserver/masterdatabasedir/master.mdf
/opt/mssql/bin/mssql-conf set filelocation.masterlogfile /data/mssqlserver/masterdatabasedir/mastlog.ldf
mv /var/opt/mssql/data/master.mdf /data/mssqlserver/masterdatabasedir/master.mdf
mv /var/opt/mssql/data/mastlog.ldf /data/mssqlserver/masterdatabasedir/mastlog.ldf

6.修改master数据库文件的名字
/opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
/opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data /mastlognew.ldf
mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf

7.修改默认的DUMP目录位置(DUMP,当遇到故障时内存和SQL DUMP生成的默认位置)
mkdir /data/mssqlserver/dump -p
chown mssql /data/mssqlserver/dump
chgrp mssql /data/mssqlserver/dump
/opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /data/mssqlserver/dump

8.修改默认错误日志目录位置
mkdir /data/mssqlserver/logs -p
chown mssql /data/mssqlserver/logs
chgrp mssql /data/mssqlserver/logs
/opt/mssql/bin/mssql-conf set filelocation.errorlogfile /data/mssqlserver/logs/errorlog

9.修改默认备份目录位置
mkdir /data/mssqlserver/backup -p
chown mssql /data/mssqlserver/backup
chgrp mssql /data/mssqlserver/backup
/opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /data/mssqlserver/backup

10.指定核心DUMP设置(默认值为false)
/opt/mssql/bin/mssql-conf set coredump.captureminiandfull
/opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>

coredump.coredumptype的值:mini、miniplus、filtered、full

mini:
Mini是最小的DUMP文件类型。它使用Linux系统信息决定进程里的线程和模块。DUMP只包含主机环境线程栈和模块。它不包含间接内存参照或全局变量。

miniplus:
Miniplus类似于mini,但是它包含其他内存。它理解SQLPAL和主机环境的内幕,添加内存区域到DUMP:
--各种全局变量
--64TB以上内存
--在/proc/$pid/maps发现的所有命名区域
--从线程到栈的间接内存
--线程信息
--相关的Teb’s和Peb’s
--模块信息
--VMM和VAD数

filtered:
Filtered使用基于减法的设计进程中的所有内存位置都包含,除非专门排除。该设计理解SQLPAL的内幕和主机环境,从DUMP排除特定区域。

full:
Full是一个位于/proc/$pid/maps的完整进程DUMP包含所有区域。它不受coredump.captureminiandfull设置的控制。

11.设置默认数据库邮件配置
sudo /opt/mssq/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

12.高可用性
/opt/mssql/bin/mssql-conf set hadr.hadrenabled 1

13.设置本地审核目录
mkdir /data/mssqlserver/audit -p
chown mssql /data/mssqlserver/audit
chgrp mssql /data/mssqlserver/audit
/opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /data/mssqlserver/audit

14.修改SQL Server本地化
/opt/mssql/bin/mssql-conf set language.lcid 1036

15.设置内存限制(默认是物理内存的80%)
/opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328

16.修改TCP端口
/opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>

17.指定TLS设置
Network.forceencryption:
如果为1,SQL Server强制加密所有连接。默认,该选项为0.

Network.tlscert:
SQL Server用于TLS的证书的完整路径。例如:/etc/ssl/certs/mssql.pem。证书必需通过mssql帐户访问。微软推荐使用chown mssql:mssql ; chmod 400 限制访问文件。

Network.tlskey:
SQL Server用于TLS的私钥文件的完整路径。例如:/etc/ssl/private/mssql.key。证书必需通过mssql帐户访问。微软推荐使用chown mssql:mssql ; chmod 400 限制访问文件。

Network.tlsprotocols:
SQL Server运行使用的以逗号分隔的TLS协议列表。SQL Server总是尝试协商最强允许的协议。如果客户端不支持任何允许的协议,SQL Server拒绝连接尝试。为了兼容性,默认允许所有支持的协议(1.2,1.1,1.0)。如果客户端支持TLS 1.2,微软推荐只允许TLS 1.2。

Network.tlsciphers:
指定对于TLS,SQL Server允许的密码。该字符串必需以OpenSSL的密码列表格式格式化。通常,你不需要修改该选项。
默认,允许以下密码:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA

Network.kerberoskeytabfile:
Kerberos keytab文件路径

18.启用/禁用跟踪标志(单或者多个禁止或启用)
/opt/mssql/bin/mssql-conf traceflag 1234 on
/opt/mssql/bin/mssql-conf traceflag 2345 3456 on
/opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off

19.移除一个设置
/opt/mssql/bin/mssql-conf unset network.tcpport

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这