欢迎,来自IP地址为:35.175.112.61 的朋友


微软近些年逐步改变了对于Linux操作系统的看法,不再将它视为死敌,而转变为慢慢接受Linux,并慢慢将其王牌软件增加Linux版本。前期微软宣布将把MS SQL server引入Linux系统就引起了业界的巨大震动。

在纳得拉的领导下,微软加大了渗入Linux传统领域的步伐(如云技术),将MS SQL Server引入Linux系统可以看作是又一重大举措。

不管微软的想法怎么样,但是用户在Linux系统上安装MS SQL Server已经成为可能。目前RHEL 7(包括CentOS 7)以及Ubuntu Server 16.04 64都提供了MS SQL Server的程序包。

但是还有一点小“惊喜”,那就是MS SQL Server需要至少3.25GB的内存。

在CentOS/RHEL系统中安装MS SQL Server

本文将以CentOS 7作为示例,演示如如安装MS SQL Server,当然所有内容对于RHEL 7同样适用。

1、为系统添加所需软件源,将如下内容添加至/etc/yum.repos.d/sql-server.repo文件

[packages-microsoft-com-mssql-server]
name=packages-microsoft-com-mssql-server
baseurl=https://packages.microsoft.com/rhel/7/mssql-server/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

为了可以执行MS SQL Server命令行,需要增加如下内容至软件源文件/etc/yum.repos.d/msprod.repo中

[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

2、使用yum包管理工具安装MS SQL Server

# yum install -y mssql-server mssql-tools

安装过程结束后,你就可以运行配置脚本(/opt/mssql/bin/mssql-conf)来对SQL Server进行相关设置,包括同意软件许可、设置SA用户密码甚至可以设置开机自己运行等。

3、如果启用了Linux系统防火墙,就要打开1443/tcp端口以接收外部连接,打开端口的命令如下:

# firewall-cmd --add-port=1433/tcp --permanent
# firewall-cmd --reload

采用 iptables服务则使用如下命令:

# iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
# iptables-save > /etc/sysconfig/iptables

4、运行之前提到过的配置脚本,并进行相关设置

$ sudo /opt/mssql/bin/mssql-conf setup

设置完成后,就会提示SQL Server启动成功:

根据以上的内容,可以选择SQL Server的版本,收费和付费情况一目了然,测试的话选评估版就可以了。

Linux系统下试用 MS SQL Server

我们将在Linux系统下使用命令提示符登录到服务器,并新建一个数据库Daehub,注意使用命令时-P参数用于给出SA用户的密码,这个密码要与之前设置的密码一致。

# export PATH=$PATH:/opt/mssql-tools/bin
# sqlcmd -S 127.0.0.1 -U SA -P 'YourPassword'
CREATE DATABASE Daehub
GO
EXIT

前一条命令是将sqlcmd命令加系统路径,这样方便使用该命令,运行结果如下图所示:

当然,你可以继续使用Linux系统的命令行工具。不过既然是SQL Server,那么使用windows平台下的 SQL Server Management Studio 则要方便很多。

如果连接MS SQL Server的时候报10054这个经典错误,很大原因在于使用了低版本的操作系统如windows 2003上的SSMS工具,由于微软更新了加密验证机制,原来的操作系统不再受支持,造成连接被拒绝,更换成其它操作系统就可以解决。登录成功后的界面如下所示(这里的Linux主机IP为172.10.110.44):

可以看到, Daehub数据库已经新建成功了。由于系统机制原因,目前Linux系统的SQL Server并不支持图形化添加表格以及编辑表数据,但是可以通过查询分析器执行SQL语句。执行下列示例语句,在Daehub数据库中新建表格并添加几条数据。

Use Daehub;
CREATE TABLE [tab_User](
	[UserID] [int] NOT NULL,
	[UserName] [nchar](10) NULL,
	[UserAddress] [nvarchar](50) NULL,
 CONSTRAINT [PK_tab_User] PRIMARY KEY CLUSTERED 
(
	[UserID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


INSERT INTO [Daehub].[dbo].[tab_User]
           ([UserID]
           ,[UserName]
           ,[UserAddress])
     VALUES
           (1,'John','BeiJing'),(2,'Rose','Shanghai'),(3,'Leon','TianJin'),(4,'Frank','ChongQing')
GO

现在就可对比一下在windows 平台下和linux平台下的查询结果是否一致了,在CentOS系统中执行如下SQL语句:

# sqlcmd -S 127.0.0.1 -U SA -P 'YourPassword'
SELECT * FROM tab_User
go

可以看到,两个平台的查询结果是完全一致,说明CentOS系统的MS SQL Server工具完全正常。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注