前天听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("x00x94x35x77", "x00x80x84x1e")
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("x00x94x35x77", "x00x80x84x1e") >>> open("sqlservr", "wb").write(newfile) [root@localhost bin]# chmod +x sqlservr
进入/opt/mssql/bin/目录后,开始运行破解命令,上面是破解过程,
我下面边解释边运行:
mv sqlservr sqlservr.old 类似于先备份,后执行,不过mv是重命名:
下面要用Python命令将sqlservr这个文件中的x00x94x35x77替换成
x00x80x84x1e,其实就是查找替换,网上的教程都是Python的,用Linux
命令应该也可以,但是因为这是二进制文件,所以用Python命令更加方便,
这时候可以输入:Python,查看机器是否安装了Python:
如果是上图这样,那就是直接进入Python命令行界面了,开始输入下面代码:
oldfile = open("sqlservr.old", "rb").read()
newfile = oldfile.replace("x00x94x35x77", "x00x80x84x1e")
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的基本命令:
下载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实例。
使用SQL Server名称(-S),用户名(-U)和密码(-P)的参数运行sqlcmd。在本教程中,您将在本地连接,因此服务器名称为localhost。用户名是SA,密码是您在安装过程中为SA帐户提供的密码。sqlcmd -S localhost -U SA -P '<YourPassword>'
以下步骤创建一个名为的新数据库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