破解SQLServer for Linux预览版的3.5GB内存限制 (UBUNTU篇)
在上一篇中我提到了如何破解RHEL上SQLServer的内存大小限制,但是Ubuntu上还有一道检查
这篇我将会讲解如何在3.5GB以下内存的Ubuntu中安装和运行SQLServer for Linux
a. 首先按照微软的给出的步骤安装和配置
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-ubuntu
b. 使用apt安装mssql的包时会提示这个错误
ERROR: This machine must have at least 3.25 gigabytes of memory to install Microsoft(R) SQL Server(R).
c. 通过分析deb包可以找到检查的地方在config脚本中
#!/bin/bash -e
# Source debconf library.
. /usr/share/debconf/confmodule
db_version 2.0
db_capb backup
let system_memory="$(awk '/MemTotal/ {print $2}' /proc/meminfo) / 1024"
if [ $system_memory -lt 3250 ]; then
echo "ERROR: This machine must have at least 3.25 gigabytes of memory to install Microsoft(R) SQL Server(R)."
exit 1
fi
对于这种检查,可以修改这里的内容并重新打包deb包,也可以通过LD_PRELOAD来绕过错误的报告,接下来我会使用LD_PRELOAD
d. 使用LD_PRELOAD让所有进程的返回值都变成0
root@ubuntu:~# vi crack.c
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
static void (*real_exit)(int status) = NULL;
static void exit_init() {
real_exit = dlsym(RTLD_NEXT, "exit");
if (real_exit == NULL) {
fprintf(stderr, "dlsym error: %s\n", dlerror());
abort();
}
}
void exit(int status) {
if (real_exit == NULL) {
exit_init();
}
real_exit(0);
}
root@ubuntu:~# gcc -Wall -shared -fPIC -o crack.so crack.c
e. 重新运行apt安装mssql包
root@ubuntu:~# env LD_PRELOAD=/root/crack.so apt-get install -y mssql-server
如果安装成功,你可以看到下面的消息
+-------------------------------------------------------------------+
| Please run /opt/mssql/bin/sqlservr-setup to complete the setup of |
| Microsoft(R) SQL Server(R). |
+-------------------------------------------------------------------+
f. 接下来和RHEL篇一样,破解程序文件
替换3250000000到512000000
root@ubuntu:~# cd /opt/mssql/bin/
root@ubuntu:/opt/mssql/bin# cp sqlservr sqlservr.old
root@ubuntu:/opt/mssql/bin# cp sqlpackage sqlpackage.old
root@ubuntu:/opt/mssql/bin# sed -i "s/\x80\x10\xb7\xc1/\x00\x80\x84\x1e/g" sqlservr
root@ubuntu:/opt/mssql/bin# sed -i "s/\x80\x10\xb7\xc1/\x00\x80\x84\x1e/g" sqlpackage
g. 重新配置mssql
root@ubuntu:/opt/mssql/bin# rm -rf /var/opt/mssql
root@ubuntu:/opt/mssql/bin# /opt/mssql/bin/sqlservr-setup
root@ubuntu:/opt/mssql/bin# systemctl status mssql-server
可以看到消息
● mssql-server.service - Microsoft(R) SQL Server(R) Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; disabled; vendor pr
Active: active (running) since Tue 2016-12-06 01:03:16 EST; 28s ago
Main PID: 9349 (sqlservr)
Tasks: 101
Memory: 458.7M
CPU: 4.296s
CGroup: /system.slice/mssql-server.service
├─9349 /opt/mssql/bin/sqlservr
└─9364 /opt/mssql/bin/sqlservr
到这里就已经大功告成了,上图


mssql刚启动就占了600MB的内存,所以微软设置3.5G的内存限制也不是没有道理的
mssql for linux似乎运行在一层windows的兼容层上,这也可能是内存占用大的原因
需要更低的资源消耗?考虑postgresql或mariadb吧
破解SQLServer for Linux预览版的3.5GB内存限制 (UBUNTU篇)的更多相关文章
- 破解SQLServer for Linux预览版的3.5GB内存限制 (RHEL篇)
微软发布了SQLServer for Linux,但是安装竟然需要3.5GB内存,这让大部分云主机用户都没办法尝试这个新东西 这篇我将讲解如何破解这个内存限制 要看关键的可以直接跳到第6步,只需要替换 ...
- 破解SQLServer for Linux预览版的3.5GB内存限制 (RHEL篇) 转
https://www.ancii.com/database/30842.html 微软发布了SQLServer for Linux,但是安装竟然需要3.5GB内存,这让大部分云主机用户都没办法尝试这 ...
- [干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)
前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不其然,这次开发者大会上就推出了MSSQL ...
- 微软发布 Windows Server 2016 预览版第三版,开发者要重点关注Nano Server
微软已经发布 Windows Server 2016 和 System Center 2016 第三个技术预览版,已经提供下载.Windows Server 2016 技术预览版第三版也是首个包括了容 ...
- Win10桌面预览版14316更新内容大全
下载更新: 安装之后右下角: Win10桌面预览版14316更新内容: Windows上运行乌班图Bash:通过设置开启开发者模式,更新和安全>面向开发人员.然后搜索"Wi ...
- Windows 10预览版14316开启Bash命令支持
00x0 前言 4月7日凌晨,微软推送了最新的Windows 10一周年更新预览版14316,其中重要的是原生支持Linux Bash命令行支持. 00x1 问题 如何开启Linux Bash命令行? ...
- Swift 3.0首个开发者预览版将在5月12日释出
Swift团队在博客中宣布Swift 3.0语言首个开发者预览版将于5月12日释出,正式版将在4-6周之后推出.开发者预览阶段并无确定的更新周期和计划,不过Swift团队称努力将其控 制在4-6周内. ...
- 【译】Visual Studio 15 预览版更新说明
序:恰逢Build2016大会召开,微软发布了VS2015的update2更新包和VS2016预览版.本人正在提升英文水平中,于是在这里对VS2016预览版的官方文档进行了部分翻译.因为VS有些功能使 ...
- Visual Studio 2015 预览版 - 支持跨平台开发Android/iOS应用程序(内置安卓模拟器)
微软最近的惊人举动真多,对普通消费者Office 移动版宣布免费,对开发者也发布了完全免费的 VS2013 社区版! 不仅如此,就连 .Net 开发框架环境也竟然「开源」并且跨平台支持 Mac 及 L ...
随机推荐
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
系列目录 ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fire ...
- 使用NUnit为游戏项目编写高质量单元测试的思考
0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...
- C#发送邮箱
之前自己从来没有做过发送邮箱的功能,前段时间项目需要,在找了很多帖子之后,终于实现了. 之后有整理了一下,写了一个类.直接给类传递信息,就可以发送了. 这里还需要说明的是,发送邮箱需要开通POP3/S ...
- WinForm设置控件焦点focus
winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winfor ...
- PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)
最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...
- 用Kotlin创建第一个Android项目(KAD 01)
原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...
- Win7安装MySQL-5.7.16过程
1.在C盘新建MYSQL文件夹:2.将mysql-5.7.16-winx64拷贝到C:\MYSQL文件夹下,更名为mysql-5.7.16:3.在mysql-5.7.16目录下,建my.ini文件,内 ...
- 打开程序总是会提示“Enter password to unlock your login keyring” ,如何成功关掉?
p { margin-bottom: 0.1in; line-height: 120% } 一.一开始我是按照网友所说的 : rm -f ~/.gnome2/keyrings/login.keyrin ...
- 邻接表的广度优先遍历(java版)
到 0 的权是 91 到 2 的权是 31 到 3 的权是 61 到 4 的权是 7 2 到 0 的权是 22 到 3 的权是 5 3 到 0 的权是 33 到 4 的权是 1 4 到 2 的权是 2 ...
- Lesson 21 Mad or not?
Text Aeroplanes are slowly driving me mad. I live near an airport and passing planes can be heard ni ...