SQL Server 2017 版本已经支持 Linux 安装了,出来了很长时间,我还没有实现过在 Linux 上面的应用,包括安装和高可用配置。本文就先尝试完成 Linux 版 SQL Server 的安装。


经常在 Windows 下安装 SQL Server 失败的同学们有福了,因为按照下面的步骤,不超过 15 分钟,你就可以直接体验 SQL 开发之旅!

SQL Server 在 CentOS 上的安装

步骤:

  1. 安装镜像
  2. 执行配置文件
  3. 打开防火墙对 SQL Server 指定端口限制
  4. 安装管理工具

注意点:

1 安装库的配置:

安装镜像的时候,正确处理依赖软件包:选用的 Linux 版本是 Centos 7, 微软的官方文档中并没有给出针对 Centos 7 的安装指南,但 Centos 是基于 RedHat 衍生出来的版本,因此尝试使用 RedHat 的安装方法,应该也奏效。

固然可以离线安装 SQL Server, 只要对 SQL Server On Linux 的包依赖都自信能搞定。为了方便起见,我在这里还是坚持用了配置 Repository 的方式,让微软搞定这些依赖关系。

这里不得不提一下对 YUM 的配置了。YUM 管理的就是包依赖,其实质是对软件的依赖做本地缓存,方便安装的时候,能自动化处理包依赖关系。

配置 Installation Online Repository:

微软已经为我们配置好了 repo 文件,将其复制到 /etc/yum.repos.d下即可:

wget https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo -O /etc/yum.repos.d/mssql-server.repo
在线安装 SQL Server
yum install mssql-server -y

安装之前先配置足够的内存,过小的内存将不能顺利安装,4GB 以上够用

sqlservr: This program requires a machine with at least 3250 megabytes of memory.
Microsoft(R) SQL Server(R) setup failed with error code 1.

善后工作
/opt/mssql/bin/sqlservr-setup

根据最新的 MSDN 文档解释,设置 SA 密码和版本,应该是执行:

/opt/mssql/bin/mssql-conf setup

选择版本和设置 SA 密码 l*s6.

==思考:==

并没有指定 SQL Server 安装在 /opt/mssql 目录下,是怎么配置安装路径的?

一开始提的问题,在安装过程中已经得到了解释,因为这是默认路径。

重新启动 SQL Server Service 使其设置生效:

+--------------------------------------------------------------+
Please run 'sudo /opt/mssql/bin/mssql-conf setup'
to complete the setup of Microsoft SQL Server
+--------------------------------------------------------------+

SQL Server needs to be restarted in order to apply this setting. Please run
'systemctl restart mssql-server.service'.
  Verifying  : mssql-server-14.0.3030.27-1.x86_64
检测数据库运行状态
systemctl status mssql-server

默认情况下,Linux 的端口是被防火墙给屏蔽的,因此需要打开防火墙对端口的允许,才能使得远程客户端访问本机服务。

firewall-cmd --zone=public --add-port=1433/tcp --permanent
firewall-cmd --reload
2 安装命令行管理工具

在没有SSMS(sql server management studio)的环境中,需要安装一些可执行 SQL 的客户端工具,以便用来创建数据库对象以及操作数据。常用的工具有 sqlcmd 和 bcp.

curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
yum install -y mssql-tools unixODBC-devel

众所周知,任何命令都需要在 PATH 环境中指定路径,才能直接运行,因此需要将 mssql-tools 的执行路径添加到本地或者全局的 PATH 文件中去。路径是默认的 /opt/mssql-tools/bin/

测试 SA 账户的连接:

sqlcmd -S localhost -U SA -P '<Password>'

如果碰到连接错误,说明需要换个方式登录本机,即使用 127.0.0.1

Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x102.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..
sqlcmd -S 127.0.0.1 -U SA -P '<Password>'

方便快捷的安装,如果微软推出一个 community edition, 我估计就没 mysql 啥事儿了。当然是玩笑话,mysql 有其自己的特性,比如插件式存储引擎,别的数据库没有办法取代。

其他客户端工具:

除了 sqlcmd, bcp, SSMS (on Windows),还可以使用以下工具:

  • SQL Operations Studio
  • mssql-cli
  • Visual Studio Code

上述三种都可以跨平台使用。首推 SQL Server Operations Studio, 2017年11月出了第一个版本,他的优点在于可视化的 DashBoard, 平时要自己写报表来监控服务器以及数据库健康状态,现在用这个集成工具就可以实现了。

让我们感受下 SOS(SQL Operations Studio)的轻便和强大

经常安装不了 SQL Server 的朋友们,建议按照以上的步骤,15 分钟内即可完成 SQL Server 的无故障安装,开始你的 SQL 之旅!

sql server 插件可以删除吗 sql server管理工具安装_SQL

sql server 插件可以删除吗 sql server管理工具安装_SQL Server_02

sql server 插件可以删除吗 sql server管理工具安装_sql server 插件可以删除吗_03

sql server 插件可以删除吗 sql server管理工具安装_SQL Server_04

安装 SQL Server 过程中,可能会遇到的一些步骤截图,给个参考:
尤其注意需要手工运行命令的地方,都有详细的路径给到

sql server 插件可以删除吗 sql server管理工具安装_Linux_05

sql server 插件可以删除吗 sql server管理工具安装_sql server 插件可以删除吗_06

sql server 插件可以删除吗 sql server管理工具安装_sql server 插件可以删除吗_07