快捷搜索:
来自 网络数据库 2019-07-14 23:02 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

Linux预览版的3

微软发布了SQLServer for Linux,但是安装竟然需要3.5GB内存,这让大部分云主机用户都没办法尝试这个新东西
这篇我将讲解如何破解这个内存限制
要看关键的可以直接跳到第6步,只需要替换4个字节就可以破解这个限制

  1. 首先按照微软的给出的步骤安装和配置

  2. 到执行/opt/mssql/bin/sqlservr-setup时可以看到这个错误

sqlservr: This program requires a machine with at least 3250 megabytes of memory.
  1. 按错误文本查找消息在哪个文件里面
[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.

看来sqlservr和sqlpackage会检测这个限制,并且这个限制是一个常量

  1. 查找错误消息的位置
[root@localhost bin]# hexdump -C sqlservr | less

找到这里

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 |

可以看到消息在0006baf6的位置

  1. 查找调用错误消息的位置
[root@localhost bin]# objdump -C -S sqlservr | less

找到这里

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

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:Linux预览版的3

关键词: