在 Red Hat 上安装 SQL Server 2022 并创建数据库
适用于: SQL Server - Linux
本快速入门介绍如何在 Red Hat Enterprise Linux (RHEL) 8.x 或 9.x 上安装 SQL Server 2022 (16.x)。然后可以使用 sqlcmd 进行连接,创建第一个数据库并运行查询。
注意:本教程需要用户输入和 Internet 连接。
必备条件
必须拥有 RHEL 8.x 计算机(内存至少为 2 GB)。
如果以前安装了 SQL Server 的社区技术预览版 (CTP) 或候选发布 (RC) 版本,则必须先删除旧存储库,然后再执行这些步骤。
安装 SQL Server
Red Hat 8环境下安装
以下用于安装 SQL Server 的命令指向 RHEL 8 存储库。
若要在 RHEL 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包:
1、下载 SQL Server 2022 (16.x) Red Hat 8 存储库配置文件:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo
如果要安装不同版本的 SQL Server,配置文件不同。
2、运行以下命令以安装 SQL Server:
sudo yum install -y mssql-server
3、包安装完成后,使用其完整路径运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。作为提醒,以下 SQL Server 版本是免费提供许可的:Evaluation、Developer 和 Express 版。
sudo /opt/mssql/bin/mssql-conf setup
请记住为 SA 帐户指定强密码。需要最小长度为 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号。
4、完成配置后,验证服务是否正在运行:
systemctl status mssql-server
5、若要允许远程连接,请在 RHEL 防火墙上打开 SQL Server 端口。默认的 SQL Server 端口为 TCP 1433。如果为防火墙使用的是 FirewallD,则可以使用以下命令:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanentsudo firewall-cmd --reload
此时,SQL Server 正在 RHEL 计算机上运行,随时可以使用!
Red Hat 9环境下安装
从 RHEL 9 开始,你可以将 SQL Server 作为启用 SELinux 的受限应用程序运行。
要将 SQL Server 作为受限应用程序运行,请执行以下步骤:
• 确保 SELinux 处于启用状态和强制模式下。
• 使用本部分后面提到的步骤安装 mssql-server 包。
• 安装新的 mssql-server-selinux 包。
sudo yum install -y mssql-server-selinux
要在 RHEL 9 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包:
1、下载 SQL Server 2022 (16.x) Red Hat 9 存储库配置文件:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/9/mssql-server-2022.repo
2、运行以下命令以安装 SQL Server:
sudo yum install -y mssql-server
(可选)如果要将 SQL Server 作为受限应用程序运行,则请安装启用了自定义策略的 mssql-server-selinux 包。
sudo yum install -y mssql-server-selinux
3、包安装完成后,使用其完整路径运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。作为提醒,以下 SQL Server 版本是免费提供许可的:Evaluation、Developer 和 Express 版。
sudo /opt/mssql/bin/mssql-conf setup
请记住为 SA 帐户指定强密码。需要最小长度为 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号。
4、完成配置后,验证服务是否正在运行:
systemctl status mssql-server
5、若要允许远程连接,请在 RHEL 防火墙上打开 SQL Server 端口。默认的 SQL Server 端口为 TCP 1433。如果为防火墙使用的是 FirewallD,则可以使用以下命令:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanentsudo firewall-cmd --reload
此时,SQL Server 正在 RHEL 计算机上运行,随时可以使用!
将 sa 帐户禁用
1、创建新的登录帐户,并将其设为 sysadmin 服务器角色的成员。
• 根据你使用的是容器还是非容器部署,启用 Windows 身份验证,并创建一个新的基于 Windows 的登录帐户,并将其添加到 sysadmin 服务器角色中。
• 否则,请使用 SQL Server 身份验证创建登录帐户,并将其添加到 sysadmin 服务器角色。
2、使用创建的新登录帐户连接 SQL Server 实例。
3、按照安全最佳做法的建议,禁用 sa 帐户。
安装 SQL Server 命令行工具
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。按照以下步骤安装 SQL Server 命令行工具:sqlcmd 实用工具 和 bcp 实用工具。
通过以下步骤在 Red Hat Enterprise Linux 上安装 mssql-tools18。
1、下载 Microsoft Red Hat 存储库配置文件。
对于 Red Hat 9,请使用以下命令:
curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
对于 Red Hat 8,请使用以下命令:
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
对于 Red Hat 7,请使用以下命令:
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
2、如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。
sudo yum remove mssql-tools unixODBC-utf16 unixODBC-utf16-devel
3、运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools18。
sudo yum install -y mssql-tools18 unixODBC-devel
若要将 mssql-tools 更新至最新版本,请运行以下命令:
sudo yum check-updatesudo yum update mssql-tools18
4、可选:向 bash shell 中的 PATH 环境变量添加 /opt/mssql-tools18/bin/。
若要使 sqlcmd 和 bcp 能从登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bash_profile 文件中的 PATH:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profilesource ~/.bash_profile
若要使 sqlcmd 和 bcp 能从交互式/非登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bashrc 文件中的 PATH:
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrcsource ~/.bashrc
本地连接
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例。
1、使用 SQL Server 名称 (-S)、用户名 (-U) 和密码 (-P) 的相应参数运行 sqlcmd。在本教程中,用户进行本地连接,因此服务器名称为 localhost。
用户名为 sa,密码是在安装过程中为 SA 帐户提供的密码。
sqlcmd -S localhost -U sa -P '<YourPassword>'
可以在命令行上省略密码,以收到密码输入提示。
如果以后决定进行远程连接,请为 -S 参数指定计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开。
2、如果成功,应会显示 sqlcmd 命令提示符:1>。
3、如果连接失败,先尝试诊断错误消息中所述的问题。
创建和查询数据
下面各部分将逐步介绍如何使用 sqlcmd 新建数据库、添加数据并运行简单查询。
新建数据库
以下步骤创建一个名为 TestDB 的新数据库。
1、在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
CREATE DATABASE TestDB;
2、在下一行中,编写一个查询以返回服务器上所有数据库的名称:
SELECT Name from sys.databases;
3、前两个命令没有立即执行。必须在新行中键入 GO 才能执行以前的命令:
GO
插入数据
接下来创建一个新表 dbo.Inventory,然后插入两个新行。
1、在 sqlcmd 命令提示符中,将上下文切换到新的 TestDB 数据库:
USE TestDB;
2、创建名为 dbo.Inventory 的新表:
CREATE TABLE dbo.Inventory (id INT,name NVARCHAR(50),quantity INT,PRIMARY KEY (id)
);
3、将数据插入新表:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150);
INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
4、要执行上述命令的类型 GO:
GO
退出 sqlcmd 命令提示符
要结束 sqlcmd 会话,请键入 QUIT:
QUIT
跨平台数据工具
除“sqlcmd”以外,还可以使用以下跨平台工具来管理 SQL Server :
从 Windows 进行连接
Windows 上的 SQL Server 工具连接到 Linux 上的 SQL Server 实例,操作方式与连接到任何远程 SQL Server 实例一样。
如果有一台可以连接到 Linux 计算机的 Windows 计算机,请从运行 sqlcmd 的 Windows 命令提示符尝试执行本主题中的相同步骤。必须使用目标 Linux 计算机名称或 IP 地址,而不是 localhost,并确保 TCP 端口 1433 已在 SQL Server 计算机上打开。
相关文章:
在 Red Hat 上安装 SQL Server 2022 并创建数据库
适用于: SQL Server - Linux 本快速入门介绍如何在 Red Hat Enterprise Linux (RHEL) 8.x 或 9.x 上安装 SQL Server 2022 (16.x)。然后可以使用 sqlcmd 进行连接,创建第一个数据库并运行查询。 注意:本教程需要用户输入和 Internet 连接。 …...
游戏如何应对云手机刷量问题
云手机的实现原理是依托公有云和 ARM 虚拟化技术,为用户在云端提供一个安卓实例,用户可以将手机上的应用上传至云端,再通过视频流的方式,远程实时控制云手机。 市面上常见的几款云手机 原本需要手机提供的计算、存储等能力都改由…...
QTableView使用QSortFilterProxyModel后行号错乱
在Qt中,当你使用QSortFilterProxyModel对QTableView进行排序或过滤后,点击事件可能会返回一个不正确的行号,因为代理模型可能会改变数据的显示顺序。为了获取点击数据的真实行号和内容,你可以使用mapToSource()函数,它…...
【Python】 报错Can‘t find model ‘en_core_web_md‘
出现这种错误表明Python环境中找不到名为en_core_web_md的模型。这通常发生在使用spaCy库进行自然语言处理时,因为spaCy依赖于预先训练好的模型来进行词性标注、依赖分析、命名实体识别等任务。如果没有安装该模型,尝试加载它时会导致错误。 解决办法&a…...
每天五分钟深度学习框架pytorch:pytorch中已经定义好的损失函数
本文重点 前面我们学习了pytorch中两种模式的损失函数,一种是nn,另外一种是functional,本文将讲解pytorch中已经封装好的损失函数。其实nn的方式就是类,而functional的方式就是方法。nn中使用的也是functional。 损失函数中的参数 无论是nn还是functional,大多数的损失函…...
dedecms(四种webshell姿势)、aspcms webshell漏洞复现
一、aspcms webshell 1、登陆后台,在扩展功能的幻灯片设置模块,点击保存进行抓包查看 2、在slideTextStatus写入asp一句话木马 1%25><%25Eval(Request(chr(65)))%25><%25 密码是a,放行,修改成功 3、使用菜刀工具连…...
【STM32系统】基于STM32设计的智能垃圾桶(语音、颜色识别、称重、光强、烟雾、人体识别、步进电机、水泵)——文末资料下载
基于STM32设计的智能垃圾桶 演示视频: 基于STM32设计的智能垃圾桶 功能简介: 四个按键可分别打开四个垃圾桶(可回收垃圾、厨余垃圾、有害垃圾、其他垃圾) oled显示屏显示四个垃圾桶的打开/关闭状态、烟雾浓度、光照强度、称重的重量和识别到的颜色(白色、红色、绿色、蓝…...
GPT代码记录
#include <iostream>// 基类模板 template<typename T> class Base { public:void func() {std::cout << "Base function" << std::endl;} };// 特化的子类 template<typename T> class Derived : public Base<T> { public:void…...
powerbi
一. CALCULATE 和 FILTER FILTER 返回的数据必须是表, 所以 可以 用在 新建表中, 不能直接用在度量值中其实 filter 相当于 用 外表字段 去进行筛选 不使用 filter, 只能使用本表字段 进行筛选,如下1, 只能使用 门店信…...
【Unity】检测鼠标点击位置是否有2D对象
在这里提供两种方案,一种是射线检测,另一种是非射线检测。 初始准备步骤: 创建2D对象(比如2D精灵)给要被检测的2D对象添加2D碰撞体(必须是2D碰撞体)创建一个空对象,再创建一个检测…...
Python学习——【2.1】if语句相关语法
文章目录 【2.1】if语句相关一、布尔类型和比较运算符(一)布尔类型(二)比较运算符 二、if语句的基本格式※、练习 三、if-else组合判断语句※、练习 四、if-elif-else多条件判断语句※、练习 五、判断语句的嵌套※、实战案例 【2.…...
机器学习--K-Means
K均值聚类 算法过程 K − m e a n s K-means K−means 是 聚类 c l u s t e r i n g clustering clustering 算法的一种,就是给你一坨东西,让你给他们分类: 我们的 K − m e a n s K-means K−means 大概是这样一个流程: 第一…...
模型训练时CPU和GPU大幅度波动——可能是数据的读入拖后腿
模型训练时CPU和GPU大幅度波动——可能是数据的加载拖后腿 问题 在进行猫狗大战分类任务时,发现模型训练时CPU和GPU大幅度波动,且模型训练速度很慢。 原因 初步分析可能是数据加载(包括数据的transform,我用了Resize&#…...
keep-alive的应用场景
...
【C++ Primer Plus习题】16.9
大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <ctime> #include <v…...
Java入门:09.Java中三大特性(封装、继承、多态)02
2 继承 需要两个类才能实现继承的效果。 比如:类A 继承 类B A类 称为 子类 , 衍生类,派生类 B类 称为 父类,基类,超类 继承的作用 子类自动的拥有父类的所有属性和方法 (父类编写,子类不需要…...
AI为云游戏带来的革新及解决方案:深度技术剖析与未来展望
近期,科技巨头埃隆马斯克与热门国产游戏《黑神话:悟空》的互动,再次引发了公众对AI技术在游戏产业中应用的关注。马斯克,作为特斯拉和SpaceX的掌门人,不仅在科技领域引领风骚,其个人兴趣也广泛涉猎…...
集合是什么
1.是什么 集合(Collection)是Java语言中一个非常重要的概念,它是一组对象的容器,用于存储、检索和操作对象。在Java中,集合框架定义了一系列接口和实现类,用于处理不同类型的集合。 集合的概念 集合框架提…...
JavaDS —— 图
图的概念 图是由顶点集合以及顶点之间的关系组成的一种数据结构:G (V,E) 其中 V 表示的是顶点集合 : V { x | x 属于某个数据对象集} 是有穷非空集合 E 叫做边的集合 : E {(x, y) | x, y 属于 V} 或者 …...
魅思-视频管理系统 getOrderStatus SQL注入漏洞复现
0x01 产品简介 魅思-视频管理系统是一款集成了视频管理、用户管理、手机端应用封装等功能的综合性视频管理系统。该系统不仅以其强大的视频管理功能、灵活的用户管理机制、便捷的手机端应用封装功能以及高安全性和现代化的界面设计,成为了市场上备受关注的视频管理系统之一。…...
Tide静态文件服务终极指南:快速实现高效文件处理方案
Tide静态文件服务终极指南:快速实现高效文件处理方案 【免费下载链接】tide Fast and friendly HTTP server framework for async Rust 项目地址: https://gitcode.com/gh_mirrors/ti/tide Tide是一个为异步Rust打造的快速友好的HTTP服务器框架,提…...
OpenClaw排错大全:Phi-3-mini-128k-instruct接口连接失败7种解决方案
OpenClaw排错大全:Phi-3-mini-128k-instruct接口连接失败7种解决方案 1. 问题背景与排查思路 上周我在本地部署Phi-3-mini-128k-instruct模型时,遇到了OpenClaw连接失败的棘手问题。控制台不断报错"Model connection timeout",但…...
Arduino MKR IoT Carrier 库底层控制与工程实践指南
1. Arduino MKR IoT Carrier 库深度解析:面向嵌入式工程师的底层控制指南 Arduino MKR IoT Carrier 是专为 MKR 系列开发板(如 MKR WiFi 1010、MKR NB 1500、MKR GSM 1400 等)设计的硬件抽象层库,其核心目标并非提供通用传感器驱…...
【PythonAI】2.1.2 数据处理的瑞士军刀:初识Pandas库(2. 快速入门示例)
#pandas_dataframe.py import pandas as pd# 创建DataFrame data {姓名: [张三, 李四, 王五, 赵六],年龄: [20, 21, 19, 22],专业: [计算机, 会计, 电商, 物流],成绩: [85.5, 92.0, 78.5, 88.0] }df pd.DataFrame(data)# 查看数据 print(df.head(2)) # 查看前2行 print(…...
别再为CUDA版本发愁了!手把手教你用Anaconda+PyCharm在Windows上搞定YOLOv11完整开发环境
从零搭建YOLOv11开发环境:Windows下的CUDA避坑指南与EMA注意力实战 刚接触计算机视觉的新手们,是否曾在配置深度学习环境时被CUDA版本冲突、PyTorch安装失败等问题折磨得焦头烂额?本文将带你用Anaconda和PyCharm在Windows系统上搭建一个稳定…...
OpenClaw知识库构建:Qwen3.5-9B自动化整理个人学习笔记
OpenClaw知识库构建:Qwen3.5-9B自动化整理个人学习笔记 1. 为什么需要自动化知识管理 去年我发现自己收藏了上千篇技术文章,却从未系统整理过。当需要查找某个概念时,要么忘记存放在哪里,要么找到的已经是过时内容。这种"数…...
如何解决SQL子查询阻塞问题_锁定机制与优化策略
子查询阻塞SELECT本质是锁等待而非语法慢,常见于REPEATABLE READ下间隙锁、IN子查询未索引或依赖型执行;优化需用EXPLAIN分析执行计划,优先改JOIN、加合适索引并验证。子查询导致 SELECT 被阻塞,本质是锁等待不是子查询语法本身慢…...
OpenClaw龙虾实用使用教程:一键安装工具分享,教“员工”上手,解锁你想要的效果
很多人安装完OpenClaw龙虾后,都会和我当初一样陷入一个误区:以为点击启动就能实现自己想要的功能,结果发现龙虾“无所适从”。其实OpenClaw龙虾就像一位新员工——它本身具备强大的潜力,但需要你耐心教导、提供足够的“资料”&…...
QUAD7SHIFT:轻量级七段数码管驱动库设计与嵌入式优化
1. 项目概述QUAD7SHIFT 是一款专为驱动 4 位共阴/共阳七段数码管模块设计的轻量级嵌入式显示库,核心目标是通过级联的 74HC595 移位寄存器实现高效、低资源占用的动态扫描显示。该库并非简单封装 SPI 接口,而是围绕“硬件抽象—时序控制—数据映射—功耗…...
SOONet模型Git版本管理与协作开发实践指南
SOONet模型Git版本管理与协作开发实践指南 如果你正在和团队一起开发基于SOONet的项目,是不是经常遇到这些问题:谁改了哪个配置文件?为什么我本地跑得好好的,合并到主分支就出错了?新功能开发到一半,线上突…...
