SQL On Linux 初体验
SQL On Linux初体验
备注:Blog具有时效性, 内容随着更新会发现变化,时间是2017年5月22日
SQL On Linux版本很快就会正式发布,本文进行了安装和常用的操作,感受还不错,废话少说各位请看。
安装篇:安装SQL服务和相关组件
安装SQL服务On Linux
首先安装操作系统,本文使用了CentOS 7.2 进行安装,安装过程不表,安装完成后,访问互联网,使用网络安装,使用了root用户登录,如果不是root用户,需要sudo 运行。下面我们先来安装SQL最重要的引擎SQL服务,按照以下步骤:
1、下载SQL 的配置文件,如果离线安装可以访问 https://packages.microsoft.com. 去下载相应文件。
sudo su
curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo
2、安装SQL,虽然是下载,发现很快就能安装完成。这个和在windows下安装的体验完全不一样。太快了快的不敢相信!!!
sudo yum install -y mssql-server
3、安装完成后,运行mssql-conf setup, 设置SA的密码,最好超过8位,有大小写和特殊字符
sudo /opt/mssql/bin/mssql-conf setup
4、安装完成后运行命令,可以看到SQL运行的情况。
systemctl status mssql-server
5、需要外部应用连接到此服务,需要开放1433端口,可以如下命令:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
6、完成安装,以后若要升级SQL
sudo yum update mssql-server
SQL On Linux工具安装
1、一样要用超级管理员,下载相应的配置文件
sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
2、安装 mssql-tools 使用unixODBC开发包,先check update下。
sudo yum update
sudo yum install mssql-tools unixODBC-devel
3、确定下载 y
4、接受license terms y
5、添加 PATH 路径 /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
安装SQL代理 mssql-server-agent
1、安装SQL代理
sudo yum install mssql-server-agent
2、重启SQL 服务
sudo systemctl restart mssql-server
安装SQL Server Full-Text Search
1、安装全文检索,名称是mssql-server-fts
sudo yum install -y mssql-server-fts
使用篇:连接SQL Server on Linux和运行Transact-SQL查询
使用SSMS连接SQL Server On Linux
1、使用SSMS 连接SQL Server on Linux和windows的SQL 并无差距。打开SSMS,点连接数据库引擎,输入服务器名或者IP,用户名和密码,连接
2、连接后
3、使用SQL 语句进行操作和平常一样
4、 创建数据库 test,并创建文件组和内存表优化组
创建表和插入数据
use testCREATE TABLE inventory (id INT, name NVARCHAR(50), quantity INT);
goINSERT INTO inventory VALUES (1, 'banana', 150);
INSERT INTO inventory VALUES (2, 'orange', 154);
GO
SELECT * FROM inventory WHERE quantity > 152;
GO
创建内存表
1、下面代码创建内存表
--提升为快照
ALTER DATABASE CURRENT
SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON; ---创建优化文件组ALTER DATABASE test ADD FILE (name='test_mod1', filename='/var/opt/mssql/data/testmod') TO FILEGROUP memogroup ---创建内存优化表CREATE TABLE dbo.SalesOrder
( SalesOrderId integer not null IDENTITY PRIMARY KEY NONCLUSTERED, CustomerId integer not null, OrderDate datetime not null
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
2、创建本机编译过程
---创建本机编译的存储过程(本机过程)
------------------------------------------------------------------------------
---重要的关键字为 NATIVE_COMPILATIONCREATE PROCEDURE ncspRetrieveLatestSalesOrderIdForCustomerId @_CustomerId INT WITH NATIVE_COMPILATION, SCHEMABINDING
AS
BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english') DECLARE @SalesOrderId int, @OrderDate datetime; SELECT TOP 1 @SalesOrderId = s.SalesOrderId, @OrderDate = s.OrderDate FROM dbo.SalesOrder AS s WHERE s.CustomerId = @_CustomerId ORDER BY s.OrderDate DESC; RETURN @SalesOrderId;
END;
3、插入数据和执行过程
---执行本机过程INSERT into dbo.SalesOrder ( CustomerId, OrderDate ) VALUES ( 42, '2013-01-13 03:35:59' ), ( 42, '2015-01-15 15:35:59' );---对本机编译的存储过程调用 EXECUTE。 DECLARE @LatestSalesOrderId int, @mesg nvarchar(128); EXECUTE @LatestSalesOrderId = ncspRetrieveLatestSalesOrderIdForCustomerId 42; SET @mesg = CONCAT(@LatestSalesOrderId, ' = Latest SalesOrderId, for CustomerId = ', 42);
PRINT @mesg;
4、全部成功完成,证明了不仅普通表支持,内存表也支持。也就是说SQL On Linux会提供和windows Linux几乎一致性的功能。
使用SQLCMD On Linux连接SQL
连接和使用sqlcmd
1、之前已经安装了sqlcmd工具, 在linux的 terminal窗口输入sqlcmd可以看到sqlcmd命令相关内容
2、连接sql
sqlcmd -S localhost -U SA -P '<YourPassword>'
3、连接后,执行 select * from sys.sysfiles的结果,查看到master 数据库的文件地址等信息。已经成功连接到数据库,sqlcmd命令和在windows下的sqlcmd一样。
select * from sys.sysfiles
创建数据库和插入数据
1、创建数据库
CREATE DATABASE testdb;
go
2、创建表和插入数据
CREATE TABLE inventory (id INT, name NVARCHAR(50), quantity INT);
goINSERT INTO inventory VALUES (1, 'banana', 150);
INSERT INTO inventory VALUES (2, 'orange', 154);
GO
SELECT * FROM inventory WHERE quantity > 152;
GO
创建内存表
1、使用以下脚本进行创建内存表
use testdbALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON; ---创建优化文件组ALTER DATABASE testdb ADD FILEGROUP testdb_mod CONTAINS MEMORY_OPTIMIZED_DATAALTER DATABASE testdb ADD FILE (name='test_mod1', filename='/var/opt/mssql/data/testmod') TO FILEGROUP testdb_mod-------创建内存优化表CREATE TABLE dbo.SalesOrder
( SalesOrderId integer not null IDENTITY PRIMARY KEY NONCLUSTERED, CustomerId integer not null, OrderDate datetime not null
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
2、具体使用sqlcmd可参考如下介绍,作为很多操作还是使用SSMS方便一些。
sqlcmd实用工具
后序
从简单的安装到简单的使用,可以发现由于Linux操作系统与windows的差别,很多功能会不一样。
本人最大的感受就是在线安装非常方便,也非常快。与在windows下安装体验完全完全不一样
在只用SQL On Linux的第一个问题是要理解文件结构,文件结构和windows的机构不同。文件路径也就不一样。Linux在系统配置都是以config的文件形式存在,也会有很多不一样的地方,本文还未进行最为重要的内容
- 数据库运维管理
- 数据库性能检测
- 数据库调优
这些内容涉及很广,不可能在较短的时间内完成。后序有机会再慢慢的体会。
End
作者简介: Max Shen(阿特),为了成为数据专家而努力,万一实现了呢!有多年的系统运维,数据库运维经验。近20年的IT从业经验,在微软有超过10年的工作经验。对数据库运维调优,排错,有独到能力。
SQL On Linux 初体验相关推荐
- 云起实验室有奖征文,精美好礼等你来领——《我的linux初体验》
简介:云起实验室面向开发者提供免费云产品资源.沉浸式体验环境.手把手操作手册,帮助开发者实现上云第一站,快速学习了解云计算及云产品. 今年七月份,社区平台全面升级,特别推出"乘风者计划&qu ...
- esp32 嵌入式linux,初体验乐鑫 ESP32 AT 指令-嵌入式系统-与非网
乐鑫 AT 固件初体验 初步体验 AT 指令下 TCP 数传,为了验证 AT 命令解析器. 前往乐鑫官网 下载最新版本 AT 固件和 AT 指令集手册. 硬件准备 本文使用乐鑫的 ESP-WROOM- ...
- 服务器硬件与 Linux 初体验
文章目录 一.服务器硬件知识 1.服务器概述 2.服务器分类 2.1 按照体系架构分类 2.1.1 非 x86 服务器 2.1.2 x86 服务器 2.2 按照应用层次分类 2.3 按照机箱结构分类 ...
- 服务器与Linux初体验
服务器硬件知识 1.服务器概述: 电源 电源相当于人体的心脏,需保障电力供应,如果要买服务器,应选择质量好一点的电源. 另外需要注意的是,在实际使用场景中,如果只是配置一个服务器负责核心业务,那么最好 ...
- Docker微容器之Alpine Linux 初体验
0x00 前言 Alpine Linux是一个面向安全的轻型的Linux发行版,基于Alpine Linux的超小型Docker镜像,大小只有5MB,并且可以访问比其他基于BusyBox的镜像更完整的 ...
- Linux初体验之VIM
上古神器vim-基本命令 Vim 是 Linux 系统上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,而 gVim 则是其 Windows 版.它的最大特色是完全使用键盘命令进行编辑, ...
- 迅飞SDK for Linux 初体验
今天测试了一下科大迅飞的sdk. 遇到了几个问题. 问题1 我使用语音识别的Demo,当我换了一个语音文件时,识别出来他的结果是这样的. confidence=91 grammar=0 id=noma ...
- 网络安全技术入门-kali linux初体验
特别声明:网络不是法外之地.不要贸然攻击别人操作系统,出现类似事件,本人概不负责.如果你继续阅读本博客.代表你同意并知悉声明内容! kali渗透工具 metasploit metasploit简称ms ...
- Kali Linux 2016.2初体验使用总结
Kali Linux 2016.2初体验使用总结 Kali Linux官方于8月30日发布Kali Linux 2016的第二个版本Kali Linux 2016.2.该版本距离Kali Linux ...
最新文章
- 中科院博士因论文致谢走红后,回到母校演讲再刷屏!网友:是对寒门学子最好的激励...
- Go 语言编程 — gorm 的数据完整性约束
- golang 结构体和数据库表字段 反射自动映射 sqlmapper库 简介
- Android Intent 大全[转载]
- Delphi开发单机瘦数据库程序要点
- 算法练习day5——190322(快排、建堆、调整堆)
- c++字符串输入_【pwn】什么是格式化字符串漏洞?
- http的“无连接”指的是_http协议无状态中的 quot;状态quot; 到底指的是什么?...
- Linux运维基础命令笔试题
- url 编码 js url传参中文乱码解决方案
- 大数据分析平台安全的重要性
- 移动设备分辨率(终于弄懂了为什么移动端设计稿总是640px和750px)
- linux下cpp文件,linux怎么编译cpp文件?
- modelica练习
- 免费商用无版权素材 免费图库 抠图 PNG 插画素材
- 【写作中的复杂名词短语练习题】前置与后置修饰
- python机器学习实现oneR算法 以鸢尾data为例
- 什么品牌的台灯适合学生用?适合学生党用的台灯推荐
- 2004古墓丽影黄金关卡——Lara在电影中:二号门
- php file_put_contents 根目录权限,关于php:file_put_contents权限被拒绝
热门文章
- mysql简单增删改查(CRUD)
- write RE validation
- JDBC和servlet设计思路、DAO模式思路、MVC思路粗略总结
- 2017.10.23学习知识总结回顾及编写新网页
- Docker容器技术-基础与架构
- 转载-Oracle ORACLE的sign函数和DECODE函数
- javascript(面向对象,作用域,闭包,设计模式等)
- Lucene.Net+盘古分词-开发自己的搜索引擎
- Python: 如何继承str/string?
- python经典书籍:Python编程实战 运用设计模式、并发和程序库创建高质量程序