Linux 下搭建SQLserver

warning: 这篇文章距离上次修改已过1574天,其中的内容可能已经有所变动。
toc end ->

本次实验环境为:阿里云 CentOS_7.4_x64 已开放1433端口

官方说明文档


安装前准备

  1. 请以root用户账号安装
  2. RHEL 7.3 或 7.4 或更高版本
  3. 在Linux上运行SQL Server需要至少3.25GB的内存(解决小内存无法安装
  4. 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
最后修改于:2019年12月05日 22:41
评论已关闭