您的位置:新葡亰496net > 网络数据库 > 5GB内部存款和储蓄器限制,Linux安装和配置

5GB内部存款和储蓄器限制,Linux安装和配置

发布时间:2019-08-23 13:16编辑:网络数据库浏览(103)

    微软透露了SQLServer for Linux,但是安装竟然供给3.5GB内存,那让一大半云主机客商都无法尝试这一个新东西
    那篇小编将教师如何破解这一个内部存款和储蓄器限制
    要正视大的能够直接跳到第6步,只要求替换4个字节就能够破解那些限制

    在上一篇中作者提到了怎么破解ENCOREHEL上SQLServer的内部存款和储蓄器大小限制,不过Ubuntu上还也有一同检查
    那篇笔者将会讲课如何在3.5GB以下内部存款和储蓄器的Ubuntu中设置和平运动转SQLServer for Linux

        随着微软的一再向linux方向开辟,从开端的Bash on Ubuntu on Windows(Windows下的Ubuntu on Windows安装能够参照:)起先到前段时间在微软在Satya Nadella的公司主下,微软那个举动在雷德Mond(美利坚合众国微软分公司)的大人物在Linux主导的家业(如飞快拉动云的本领)方面得到了引人注目进展。使SQL Server能够在Linux意况下运作,是这种经过的另一个标记性的行径。当然无论微软的那这一举措背后的心境是什么,可是当前在Red Hat EnterpriseLinux 7(包蕴CentOS 7)和Ubuntu服务器16.04下是能够运作msSQL的,可是必要小心的是在运维的服务器下必要有3.25 GB的内部存款和储蓄器,下边就大致的说一说在CentOS 7下何以设置msSQL:

    尽管mssql for linux早就经出去了,但原来从不妄想这么早就去尝试的,万般无奈之下依旧得先尝试用了,这里分几篇介绍我在用mssql for linux时相遇的主题材料,不得不说作为先吃花蟹的人总是要交给一些代价的,真是会遇上各个奇葩难点,本篇博客只介绍怎样设置mssql for linux,小编依旧是在CentOS 上尝试安装的。官方网址也可以有安装步骤,也没有供给过多的表明,小编也只放部分截图,步骤如下:

    1. 率先依据微软的交给的步子安装和安顿

    2. 到实施/opt/mssql/bin/sqlservr-setup时能够看来那几个荒唐

    a. 首先遵照微软的交给的步骤安装和配置

    [root@localhost ~]# cd /etc/yum.repos.d/
    [root@localhost yum.repos.d]# wget https://packages.microsoft.com/config/rhel/7/mssql-server.repo
    [root@localhost yum.repos.d]# yum -y install mssql-server
    [root@localhost yum.repos.d]# /opt/mssql/bin/mssql-conf setup
    可以在以下位置找到此产品的许可条款:
    /usr/share/doc/mssql-server 或从以下位置下载:
    https://go.microsoft.com/fwlink/?LinkId=852741&clcid=0x804
    
    可以从以下位置查看隐私声明:
    https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804
    
    接受此许可条款吗? [Yes/No]:yes
    
    选择 SQL Server 的一个版本:
      1) 评估版(免费,无生产许可,180 天限制)
      2) 开发人员版(免费,无生产许可)
      3) Express 版(免费)
      4) Web 版(付费)
      5) 标准版(付费)
      6) 企业版(付费)
      7) 我通过零售渠道购买了许可证并具有要输入的产品密钥。
    
    可在以下位置找到有关版本的详细信息:
    https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x804
    
    使用此软件的付费版本需要通过以下途径获取单独授权
    Microsoft 批量许可计划。
    选择付费版本即表示你具有适用的
    要安装和运行此软件的就地许可证数量。
    
    输入版本(1-7): 2
    
    选择 SQL Server 的语言:
    (1) English
    (2) Deutsch
    (3) Español
      ) Français
    ▽5) Italiano
    (6) 日本語
    (7) 한국어
    (8) Português
    (9) Русский
    (10) 中文 – 简体
    (11) 中文 (繁体)
    输入选项 1-11:10
    输入 SQL Server 系统管理员密码: 
    确认 SQL Server 系统管理员密码: 
    正在配置 SQL Server...
    
    This is an evaluation version.  There are [17] days left in the evaluation period.
    Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
    安装程序已成功完成。SQL Server 正在启动。
    

      在Linux下安装服务有很各个措施,最简易的也便是yum安装,若是使用yum安装,大家须要指虞诩装货仓,这里需求内定微软的yum源,如图所示:

    b. 使用apt安装mssql的包时会唤醒这么些荒唐

    与此相类似简约的配备安装后就在CentOS 7安装了msSQL,须要注意的是在服务器上急需敞开msSQL的缺省1433端口,其次在msSQL下安装时就能够提醒安装配备根据提示配置中须要配备sa的密码,在安插好后就能够运行msSQL,而msSQL在安装好后会在/opt/mssql路线下,安装好后会在系统中新加四个mssql的客户,其家目录在/var/opt/mssql,个中寄存着msSQL相关的数据文件及日志

    新葡亰496net 1

    sqlservr: This program requires a machine with at least 3250 megabytes of memory.
    
    ERROR: This machine must have at least 3.25 gigabytes of memory to install Microsoft(R) SQL Server(R).
    

    上述正是微软颁发的顺序mssql的顺序版本。

    1. 按错误文本查找音信在哪些文件之中

    c. 通过深入分析deb包能够找到检查的地方在config脚本中

    首先获取yum源,命令

    #!/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
    

     

    [root@localhost ~]# cd /opt/mssql/bin/
    [root@localhost bin]# grep -irn "3250"
    [root@localhost bin]# grep -irn "megabytes of memory"
    Binary file sqlpackage matches
    Binary file sqlpackage matches
    Binary file sqlservr matches
    [root@localhost bin]# strings sqlservr | grep "megabytes of memory"
    %s: This program requires a machine with at least %zu megabytes of memory.
    [root@localhost bin]# strings sqlpackage | grep "megabytes of memory"
    %s: This program requires a machine with at least %zu megabytes of memory.
    

    新葡亰496net,对此这种检讨,能够修改这里的剧情并再一次打包deb包,也得以透过LD_PRELOAD来绕过错误的告诉,接下去小编会使用LD_PRELOAD

    1
    curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo

    总的来讲sqlservr和sqlpackage会检查测验那一个界定,何况这几个限制是多少个常量

    d. 使用LD_PRELOAD让具备进程的重返值都形成0

    下一步安装mssql :

    1. 检索错误音信的职分
    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: %sn", 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@localhost bin]# hexdump -C sqlservr | less
    
    root@ubuntu:~# env LD_PRELOAD=/root/crack.so apt-get install -y mssql-server
    
    1
    yum install -y mssql-server

    找到这里

    假定设置成功,你可以看出上边包车型大巴音讯

    设置到位:

    0006baf0  72 69 6e 67 29 00 25 73  3a 20 54 68 69 73 20 70  |ring).%s: This p|
    0006bb00  72 6f 67 72 61 6d 20 72  65 71 75 69 72 65 73 20  |rogram requires |
    
     ------------------------------------------------------------------- 
    | Please run /opt/mssql/bin/sqlservr-setup to complete the setup of |
    |                  Microsoft(R) SQL Server(R).                      |
     ------------------------------------------------------------------- 
    

     

    能够见到音讯在0006baf6的地方

    f. 接下去和RHEL篇相同,破解程序文件
    替换3250000000到512000000

    新葡亰496net 2

    1. 追寻调用错误音讯的岗位
    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/x80x10xb7xc1/x00x80x84x1e/g" sqlservr
    root@ubuntu:/opt/mssql/bin# sed -i "s/x80x10xb7xc1/x00x80x84x1e/g" sqlpackage
    

    下边查看大家设置的sql server版本

    g. 重新配置mssql

     

    [root@localhost bin]# objdump -C -S sqlservr | less
    
    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
    
    1
    rpm -qa | grep mssql

    找到这里

    能够见到新闻

    新葡亰496net 3

       23940:       48 8d 35 af 81 04 00    lea    0x481af(%rip),%rsi        # 6baf6
       23947:       31 c0                   xor    
    		

    本文由新葡亰496net发布于网络数据库,转载请注明出处:5GB内部存款和储蓄器限制,Linux安装和配置

    关键词: