欢迎,来自IP地址为:98.80.143.34 的朋友
微软近些年逐步改变了对于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工具完全正常。