【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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券