CentOS安装mssql
根据微软文档安装mssql
https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sql-server-ver15
破解内存限制
在配置过程中会提示错误信息
sqlservr: This program requires a machine with at least 2000 megabytes of memory.
此时需要按以下方法修改内存限制
cd /opt/mssql/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()
权限问题
运行 systemctl status mssql-server
查看服务状态时提示错误信息 Failed to start Microsoft SQL Server Database Engine.
1、查看错误原因
journalctl -fp err
提示权限错误
Failed at step EXEC spawning /opt/mssql/bin/sqlservr: Permission denied
Failed at step EXEC spawning /opt/mssql/bin/sqlservr: Permission denied
Failed to start Microsoft SQL Server Database Engine.
2、修改目录权限
chmod -v 777 /opt/mssql/bin/sqlservr
3、重新启动mssql服务
systemctl restart mssql-server
中文乱码
修改SQL Server数据库排序规则
-- 查看排列规则
SELECT DATABASEPROPERTYEX('wgmesdata2020', 'Collation') SQLCollation;
-- 修改排列规则
Alter Database wgmesdata2020 collate Chinese_PRC_CI_AS;
修改排序规则能解决80%以上的乱码问题,如果修改后没有解决,检查服务器操作系统语言及字段类型。
几个应当特别留意的字段类型
正常来讲,char、varchar、text也可以存储中文字符,但是当遇上英文操作系统并且对中文字体的支持不全面的时候,在以上三个格式中存储中文字符就可能出现乱码。这时候建议修改中文存储字段的数据类型。
varchar
修改varchar为nvarcharchar
修改char为nchartext
修改text为ntext