专栏首页浩Coding【SQL Server on Linux】Linux下安装SQL Server 及SqlServer基本命令CRUD

【SQL Server on Linux】Linux下安装SQL Server 及SqlServer基本命令CRUD

前天听Mr.Ding说Linux上也可以安装SqlServer了,正好学习.net也需要安装SqlServer,正好按照Mr.Ding的教程走一遍,反正服务器也是闲着,可着劲折腾去吧。

直接上简略教程,不想看解释的按照教程走就行,后面是详细安装过程:

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的bin目录下(cd /opt/mssql/bin/):

mv sqlservr sqlservr.old

输入Python,执行下面命令:

oldfile = open("sqlservr.old", "rb").read()

newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e")

open("sqlservr", "wb").write(newfile)

chmod +x sqlservr

4 配置SqlServer:

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

5 配置完成后,验证服务是否正在运行:

service mssql-server status

6 开放1433端口

1 先决条件

您必须具有至少2 GB内存RHEL 7.3或7.4计算机。

如果使用CENTOS 、请使用CENTOS 7的版本。CENTOS6.9 安装的话,会出现错误。

如果您以前安装了SQL Server 2017的CTP或RC版本,则必须先删除旧存储库,然后再执行这些步骤。

可以使用命令:cat /etc/redhat-release 来查看系统发行版本

2 安装SqlServer

2.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

过程如下:

sudo yum update 更新系统,这个不是必须的,只是预防系统环境出现

什么异常的问题,视个人而定。

2.2 运行以下命令以安装SQL Server:

sudo yum install -y mssql-server

一部分过程:

安装完成:

2.3 程序包安装完成后,运行mssql-conf setup并按照提示

设置SA密码并选择您的版本:

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

1.这些会选择你对应的版本,评估版,标准版,企业版等

2.设置sa的账号密码

3.这个过程是可以重复做的。如果密码忘记了,可以用这个直接重置。不过要事先关闭服务。

这个随意,然后选择安装语言,管理员密码等等:

2 .4 然后安装失败,进入另一个坑,破解内存限制:

提示说至少有2G内存,我们的服务器是2G的内存,但是很皮的是,

微软在 Update 4 后把内存限制改成了 2G,也就是,即使你按照指南操作,

安装时空闲内存不足 2000M 一样会得到报错消息:

sqlservr: This program requires a machine with at least 2000 megabytes of memory.

但是需要修改的这个常量而不是 3250000000 而是 2000000000。

此时可以切换自己的mssql的bin目录下(cd /opt/mssql/bin/)

[root@localhost bin]# mv sqlservr sqlservr.old
[root@localhost bin]# python
>>> oldfile = open("sqlservr.old", "rb").read()
>>> newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e")
>>> open("sqlservr", "wb").write(newfile)
[root@localhost bin]# chmod +x sqlservr

进入/opt/mssql/bin/目录后,开始运行破解命令,上面是破解过程,

我下面边解释边运行:

mv sqlservr sqlservr.old 类似于先备份,后执行,不过mv是重命名:

下面要用Python命令将sqlservr这个文件中的\x00\x94\x35\x77替换成

\x00\x80\x84\x1e,其实就是查找替换,网上的教程都是Python的,用Linux

命令应该也可以,但是因为这是二进制文件,所以用Python命令更加方便,

这时候可以输入:Python,查看机器是否安装了Python:

如果是上图这样,那就是直接进入Python命令行界面了,开始输入下面代码:

oldfile = open("sqlservr.old", "rb").read()

newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e")

open("sqlservr", "wb").write(newfile)

替换字符串后还创建个sqlservr文件,复制完代码后exit()退出即可

此时我们查看文件,然后记得chmod +x sqlservr

我们可以继续配置SqlServer了:sudo /opt/mssql/bin/mssql-conf setup

2.4 配置完成后,验证服务是否正在运行:

systemctl status mssql-server 或者 service mssql-server status

如图,此时SqlServer正在正常运行,而且默认SqlServer是开机自启的:

2.5 配置防火墙

放开1433端口,让外面的客户端可以正常访问1433端口

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

如果是云服务器的话就直接设置就行:

基本操作:

启动服务:sudo systemctl start mssql-server 或者 service mssql-server start

停止服务:sudo systemctl stop mssql-server 或者 service mssql-server stop

拓展SqlServer的基本命令:

1 安装SQL Server命令行工具sqlcmd:

下载Microsoft Red Hat存储库配置文件:

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

使用unixODBC开发包安装mssql-tools:

sudo yum install -y mssql-tools unixODBC-devel

安装完成:

添加/opt/mssql-tools/bin/到PATH环境变量中。这使您可以在不指定完整路径的情况下运行工具。运行以下命令修改登录会话和交互/非登录会话的PATH:

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

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

source ~/.bashrc

以下步骤使用sqlcmd本地连接到新的SQL Server实例。

  1. 使用SQL Server名称(-S),用户名(-U)和密码(-P)的参数运行sqlcmd。在本教程中,您将在本地连接,因此服务器名称为localhost。用户名是SA,密码是您在安装过程中为SA帐户提供的密码。

sqlcmd -S localhost -U SA -P '<YourPassword>'

2 创建和查询数据

创建一个新数据库

以下步骤创建一个名为的新数据库TestDB

CREATE DATABASE TestDB

在下一行,编写一个查询以返回服务器上所有数据库的名称:

SELECT Name from sys.Databases

前两个命令没有立即执行。您必须键入GO新行才能执行以前的命令:

插入数据

接下来创建一个新表,Inventory然后插入两个新行。

1 从sqlcmd命令提示符,将上下文切换到新TestDB数据库:

USE TestDB

2 创建名为的新表Inventory

CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)

3 将数据插入新表:

INSERT INTO Inventory VALUES (1, 'banana', 150);

INSERT INTO Inventory VALUES (2, 'orange', 154);

4 键入GO以执行以前的命令:

查询数据:

现在,运行查询以从Inventory表中返回数据。

1 在sqlcmd命令提示符下,输入一个查询,该查询返回Inventory数量大于152 的表中的行:

SELECT * FROM Inventory WHERE quantity > 152;

2 老样子,输入go执行命令:

3 exit 或者 quit 退出。

这只是为了测试SqlServer是否正常,后续还可以用别的远程连接即可,记得开放服务器的1433端口啊。

参考文章:

https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-red-hat?view=sql-server-2017

https://www.cnblogs.com/johnwii/p/8525490.html

http://www.mamicode.com/info-detail-1838945.html

https://blog.csdn.net/z10843087/article/details/78109348

本文分享自微信公众号 - 浩Coding(gh_c4a2e63d2ca7),作者:浩

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【SQL Server on Linux】Linux下安装SQL Server

    前天听Mr.Ding说Linux上也可以安装SqlServer了,正好学习.net也需要安装SqlServer,正好安装Mr.Ding的教程走一遍,反正服务器也...

    浩Coding
  • Linux命令之head和tail

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是...

    浩Coding
  • Win10删除右键菜单中的百度网盘以及资源管理器中3D对象/视频/图片等快捷方式

    相信大家都有这种经历,装了百度网盘客户端后,会自动在Windows的右键菜单中添加“上传到百度网盘”选项,但该选项在百度网盘客户端设置中是没法去掉的。本文章演示...

    浩Coding
  • MetaMind深度解读NLP研究:如何让机器学习跳读

    选自MetaMind 作者:Alexander Rosenberg Johansen 机器之心编译 参与:机器之心编辑部 自然语言处理是人工智能研究的核心问题之...

    机器之心
  • 软件推荐(天若OCR) -- 文字识别,解放重复劳动

    今天是软件专场的倒数第90场,跟大家分享的是文字识别工具--天若OCR。下面我们把舞台交给天若OCR,大家掌声欢迎。

    璀错
  • Visio 2019 专业版 下载安装教程

    Visio 2019 专业版是一款功能强大设计甘特图、设计逻辑图和设计思维图软件。用户可以在Visio 2019上设计流程图,设计甘特图,设计逻辑图,设计思维图...

    Mac助理
  • MongoDB 路由表刷新导致响应慢场景解读

    MongoDB sharding 实例从3.4版本升级到 4.0版本 以后插入性能明显降低,观察日志发现大量的 insert 请求慢日志:

    MongoDB中文社区
  • 传统的网络入侵检测系统之间的区别?

    近年来网络攻击,病毒,漏洞,黑客勒索等事件常有发生,由此企业对网络安全防护建设视为企业发展道路上重中之重的事情。那怎么选择合适的网络入侵检测系统呢?

    墨者盾
  • Redis HA 实践(Redis Sentinel)

    Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Re...

    DB之路
  • 通过匿名函数和验证规则类自定义 Laravel 字段验证规则

    Laravel 验证器的强大之处不仅在于提供前面提到的多种请求验证方式,以及非常丰富的字段验证规则(不同规则可以组合形成新的验证规则),从 5.5 版本开始,还...

    学院君

扫码关注云+社区

领取腾讯云代金券