Linux 下搭建SQLserver
warning:
这篇文章距离上次修改已过1771天,其中的内容可能已经有所变动。
本次实验环境为:阿里云 CentOS\_7.4\_x64 已开放1433端口
安装前准备
- 请以root用户账号安装
- RHEL 7.3 或 7.4 或更高版本
- 在Linux上运行SQL Server需要至少3.25GB的内存(解决小内存无法安装)
- SQL Server引擎目前仅测试了高达256GB的内存。
安装SQLserver2017
1.下载 Microsoft SQL Server 2017 Red Hat 存储库配置文件:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
2.运行安装命令
sudo yum install -y mssql-server
3.请运行 mssql-conf setup 命令并按提示设置 SA 密码,然后选择版本。
sudo /opt/mssql/bin/mssql-conf setup
请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。
自由授权以下 SQL Server 2017 版本: Evaluation、 Developer 和 Express。
4.验证是否正常运行
systemctl status mssql-server
5.解决小内存无法安装
错误提示:
#错误提示:
sqlservr: This program requires a machine with at least 2000 megabytes of memory.
网上现有的解决方案都是3.5G限制,但在update4后,微软很皮的把限制改为了2G,导致现有方案依然无法安装。
#解决方案:
cd /opt/mssql/bin/ #进入SQLserver安装目录
mv sqlservr sqlservr.old #保存备份文件
python #使用python修改内存限制代码
#python修改内存限制为512M:
oldfile = open("sqlservr.old", "rb").read()
newfile = oldfile.replace("\\x00\\x94\\x35\\x77", "\\x00\\x80\\x84\\x1e")
open("sqlservr", "wb").write(newfile)
exit()
然后重新进行第3步即可。
安装SQL Server 命令行工具
1.下载 Microsoft Red Hat 存储库配置文件
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
#如果你有旧版mssql 工具安装,请删除任何较旧的 unixODBC 包;没有,则请跳过!
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
2.运行以下命令以安装 mssql-tools 和 unixODBC 开发人员包。
sudo yum install -y mssql-tools unixODBC-devel
3.为方便起见,添加 PATH 环境变量
这样就可以在运行工具时不指定完整路径。
#将 /opt/mssql-tools/bin/ 添加到 PATH 环境变量(官方方案,推荐)
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
上下两种方案任选其一即可。
#或是创建软连接文件
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0/usr/bin/sqlcmd
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp
4.测试链接
sqlcmd -S localhost -U sa -P '<YourPassword>'
基本数据库查询
新建数据库
#创建测试数据库TestDB
CREATE DATABASE TestDB
#查询以返回服务器上所有数据库的名称
SELECT Name FROM sys.Databases
#执行命令
GO
插入数据
#将上下文切换到新的 TestDB 数据库
USE TestDB
#创建名为 Inventory 的新表
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
#将数据插入名为 Inventory 的表
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
#执行命令
GO
选择数据
#通过 sqlcmd 命令提示符输入查询,以返回 Inventory 表中数量大于 152 的行
SELECT * FROM Inventory WHERE quantity > 152;
#执行命令
GO
退出 sqlcmd 命令提示符
#退出sqlcmd
QUIT