CentOS7 安装并使用SQL Server

送外卖
• 阅读 5213

CentOS7 安装并使用SQL Server

Linux 上的 SQL Server 安装指南

笔者基于CentOS7进行安装操作

  • 下载 Microsoft SQL Server Red Hat 存储库配置文件
   sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server.repo
  • 运行以下命令,安装 SQL Server
sudo yum update -y
sudo yum install -y mssql-server
  • 安装完成之后,执行下面命令,根据提示设置SA密码,并选择相应的版本
sudo /opt/mssql/bin/mssql-conf setup

图片描述

确保SA账户密码轻度满足默认要求(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)

  • 配置完成后,请验证服务是否正在运行
systemctl status mssql-server

图片描述

  • 开启防火墙上的 SQL Server 端口,默认为TCP 1433
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
# firewall-cmd未启用不需要做此设置

到此,SQL Server已在CentOS7上正常运行

安装 SQL Server 命令行工具

要创建数据库,需要使用一种工具,可以在 SQL Server 上运行 TRANSACT-SQL 语句进行连接。 以下步骤安装 SQL Server 命令行工具:sqlcmd和bcp

  • 下载 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 update
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
  • 运行以下命令以安装mssql 工具与 unixODBC 开发人员包
sudo yum update
sudo yum install -y mssql-tools unixODBC-devel
  • 添加/opt/mssql-tools/bin/路径到环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

本地连接配置

以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例

  • 使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd。 在本教程中,用户进行本地连接,因此服务器名称为 localhost。 用户名为 SA,密码是在安装过程中为 SA 帐户提供的密码。
sqlcmd -S localhost -U SA -P '<YourPassword>'

密码输入可以采用交互的方式

  • 如果连接成功显示如下图:应会显示 sqlcmd 命令提示符:1>

图片描述

使用SQL Server创建和查询数据

新建数据库,创建一个名为AniuDB的数据库

  • 在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
CREATE DATABASE AniuDB
  • 在下一行中,编写一个查询以返回服务器上所有数据库的名称
SELECT Name from sys.Databases
  • 前两个命令没有立即执行。 必须在新行中键入 GO 才能执行以前的命令:
GO

图片描述

接下来创建一个新表 itdevops,然后插入两个新行

  • 在 sqlcmd 命令提示符中,将上下文切换到新的 AniuDB数据库:
USE AniuDB
  • 创建名为 itdevops 的新表:
CREATE TABLE itdevops(id INT, name NVARCHAR(50), quantity INT)
  • 将数据插入表中
INSERT INTO itdevops VALUES (1, 'banana', 150); INSERT INTO itdevops VALUES (2, 'orange', 100);
  • 执行GO
GO

选择数据,运行查询从 itdevops变返回数据

  • 通过 sqlcmd 命令提示符输入查询,以返回 itdevops表中数量大于 100 的行
SELECT * FROM itdevops WHERE quantity > 100;
# 执行 GO
  • 退出 sqlcmd 命令提示符
quit

从 Windows 进行连接

Windows 上的 SQL Server 工具连接到 Linux 上的 SQL Server 实例,操作方式与连接到任何远程 SQL Server 实例一样

  • Windows 上运行,连接到 Linux 上的 SQL Server 的其他工具:
SSMS: https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-develop-use-ssms
WP: https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-manage-powershell
SSDT: https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-develop-use-ssdt
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Stella981 Stella981
3年前
SQLServer 2016安装时的错误:Polybase要求安装Oracle JRE 7更新51或更高版本
SQLServer2016安装时的错误:Polybase要求安装OracleJRE7更新51或更高版本2017年11月09日09:52:57Andrewniu(https://www.oschina.net/action/GoToL
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Easter79 Easter79
3年前
SpringBoot整合Redis乱码原因及解决方案
问题描述:springboot使用springdataredis存储数据时乱码rediskey/value出现\\xAC\\xED\\x00\\x05t\\x00\\x05问题分析:查看RedisTemplate类!(https://oscimg.oschina.net/oscnet/0a85565fa
Easter79 Easter79
3年前
SQLServer 2016安装时的错误:Polybase要求安装Oracle JRE 7更新51或更高版本
SQLServer2016安装时的错误:Polybase要求安装OracleJRE7更新51或更高版本2017年11月09日09:52:57Andrewniu(https://www.oschina.net/action/GoToL
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这