安装sqlserver有内存限制
用docker直接安装sqlserver的时候如果服务器可用内存低于2G会抱错
This program requires a machine with at least 2000 megabytes of memory
错误
换一个大的内容服务器!
哈哈!
木得红票票 哭晕
只能用下面的方式搞一下,修改内存限制了
将内存调整为512m.
调整文件是/opt/mssql/bin/
下的sqlservr
问题: 我们连容器都运行不起来,更别说修改了!!
解决方式:我现在虚拟机(内存够的)用docker安装了sqlserver然后把配置文件拷贝出来,修改完毕后,上传服务器.
然后做在内存不够的服务器上运行sqlserver的时候进行配置映射
docker search mssql
镜像是微软官方的,但docker hub 奇怪的是并没有把其标示为OFFICIAL。
docker pull microsoft/mssql-server-linux
docker run --name sqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux
这个密码需要复杂密码,要有大小写和特殊符号,替换yourStrong(!)Password成你自己的密码就行。
文件在容器的/opt/mssql/bin
下(只拷贝bin文件就行)
# 拷贝bin下的文件到宿主机的/tmp下
docker cp sqlserver:/opt/mssql/bin /tmp
到这里我们就拿到了我们需要的文件,不想弄得可以留言找我要.
参考: https://www.cnblogs.com/areyouready/p/8973495.html
# 进入刚才文件的保存目录
cd /tmp/bin
mv sqlservr sqlservr.old # 保存备份文件
python # 使用python修改内存限制代码
>>>oldfile = open("sqlservr.old", "rb").read()
>>>newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e")
>>>open("sqlservr", "wb").write(newfile)
>>>exit()
# 修改权限
chmod 755 sqlservr
执行 /opt
目录下新建文件`mssql/bin’
mkdir -p /opt/mssql/bin
将改才改完后的bin
下的所有文件上传到我们新建的bin
目录下
创建data映射目录 mkdir -p /root/sqlserver
一定要映射配置文件
docker pull microsoft/mssql-server-linux
docker run --name sqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=cnTRE147+' -p 1433:1433 -v /root/sqlserver/:/var/opt/mssql/data/ -v /opt/mssql/bin:/opt/mssql/bin/ -d microsoft/mssql-server-linux
我这里除了映射配置文件还映射了data文件
配置的用户是SA 密码是:cnTRE147+
sqlserver默认用户是sa,安装的时候就需要给这个sa设置密码.至于想用其他用户,需要安装完成后再去创建其他角色.
(我刚开始想,安装的时候就创建指定的用户名millions,我改成了 millions_PASSWORD=cnTRE147+
但是我发现用客户端连接的时候提示用户名不对,我直接把连接用户名改成sa居然可以,虽然我开始没有写'SA_PASSWORD=cnTRE147+
,很奇怪,哈哈.)
用客户端就可以连接了
查看版本 SELECT @@VERSION
用阿里云等服务器的要记得打开端口
参考:
https://www.cnblogs.com/linjiqin/p/11283184.html
https://segmentfault.com/a/1190000014232366
就是再加一个映射
-v /etc/localtime:/etc/localtime
参考
文档:docker时间设置.md
链接:http://note.youdao.com/noteshare?id=33cb9ae2f396928c08779f6ba077bf67&sub=C854FAA358C047B1BB0273758116E142