使用Powershell管理Linux 下的 SQL Server

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

我们上一篇文章介绍了在Centos 7.3下安装及配置 SQL Server,今天我们主要介绍的是如何在Windows下使用Powershell来管理Linux下的SQL Server,其实说到Powershell大家都已经很熟悉了,Powershell不止是命令集合也是批量程序,可以很好的协助管理员提高日常的运维工作,但是微软的Powershell有一个毛病就是不同的服务需要安装不同的Powershell,对于Lync下的Shell、Exchange Shell和系统自带的Powershell就有很大的区别,另外还有今天我们介绍的内容使用Powershell管理SQL Server,需要安装单独的SSMS才可以使用powershell导出sql的模块,如果使用系统再带的Powershell导入sqlserver模块的话会提示错误,希望后期微软能彻底解决这个问题。好了不多说了,言归正传,开始我们今天的介绍;

我们首先得知,SQL Powershell 包含在 SQL Server Manager Studio上的,所以我们只需要下载对应的SSMS即可;下载链接

https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms

clipboard

安装步骤我们跳过了

clipboard

下载后安装我们就可以使用系统自带的Powershell进行管理了(前提我们已经安装了刚才下载的SSMS工具才可以使用系统自带的Powershell)

clipboard

clipboard

我们首先需要导入sql的模块

1
import -module sqlserver

clipboard

验证SQLServer模块状态

1
Get-Module -Name SqlServer

clipboard

接下来我们使用powershell链接SQL Server 然后获取server信息

1
2
3
4
5
6
7
8
9
10
11
12
13
# Prompt for credentials to login into SQL Server
$serverInstance =  "<your_server_instance>"
$credential = Get-Credential
# Load the SMO assembly and create a Server object
[System.Reflection.Assembly]::LoadWithPartialName( 'Microsoft.SqlServer.SMO' ) | out-null
$server = New-Object ( 'Microsoft.SqlServer.Management.Smo.Server' ) $serverInstance
# Set credentials
$server.ConnectionContext.LoginSecure=$ false
$server.ConnectionContext.set_Login($credential.UserName)
$server.ConnectionContext.set_SecurePassword($credential.Password)
# Connect to the Server and get a few properties
$server.Information | Select-Object Edition, HostPlatform, HostDistribution | Format-List
# done

我们为了方便我们使用Powershell ISE进行执行脚本

clipboard

然后我们开始编写powershell脚本;

clipboard

执行提示需要输入SQL Server的账户及密码

clipboard

我的执行结果信息显示不全,应该显示系统的版本:比如linux等。

clipboard

最后,我们再说一下,如何使用powershell管理SQL Server on Linux呢

首先是通过在powershell下导入sql的模块

1
import -module sqlserver

然后使用powershell连接sqlserver,连接sql server的powershell我们可以使用以下方法

1
2
3
4
5
6
7
8
9
10
11
12
13
# Prompt for credentials to login into SQL Server
$serverInstance =  "<your_server_instance>"
$credential = Get-Credential
# Load the SMO assembly and create a Server object
[System.Reflection.Assembly]::LoadWithPartialName( 'Microsoft.SqlServer.SMO' ) | out-null
$server = New-Object ( 'Microsoft.SqlServer.Management.Smo.Server' ) $serverInstance
# Set credentials
$server.ConnectionContext.LoginSecure=$ false
$server.ConnectionContext.set_Login($credential.UserName)
$server.ConnectionContext.set_SecurePassword($credential.Password)
# Connect to the Server and get a few properties
$server.Information
# done

输入SQL Server的账户及密码验证一下即可

clipboard

执行后我们就可以看见操作结果

clipboard

clipboard

最后我们就可以使用powershell操作sqlserver了

操作命令跟我们在本地的命令是一样的;sqlcmd

clipboard

其实通过想通过powershell连接SQL Server还有另外一种方法--这样的方法是最常见、也是最方便的使用方法,其实Linux下的使用mysql也是同样的方法,只是参数不同而已

首先是导入sql server模块

1
2
import -module sqlserver
sqlcmd -S 192.168.5.20 -U sa -P 的方式也是可以的

clipboard

其实接下来的所有操作跟我们在windows上的使用powershell是一样的

同样使用帮助命令进行操作

1
get-help sqlserver

clipboard

因为需要下载安装一下帮助命令所以比较慢,在此我就不等了

接下来我们使用powershell管理一下我们的SQL数据比如我们查看当前系统有哪些数据库

1
2
select  name from sys.databases;
go

clipboard

接下来我们创建一个数据库,然后插入数据

1
2
create database xll;
go

clipboard

然后我们选择数据库

1
2
use xll;
go

clipboard

接下来我们创建一张表,在刚才选择的数据库下

1
2
create table xllinfo ( id  int ,name varchar(50),quantity int);
go

clipboard

我们查看当前的表信息

1
2
select  * from xllinfo;
go

clipboard

然后我们给表中插入数据

1
2
3
INSERT INTO testtb VALUES (1,  'zs' , 27);
INSERT INTO testtb VALUES (1,  'ls' , 29);
go

clipboard

我们继续查询

1
2
select  * from xllinfo;
go

clipboard

接下来我们在SSMS下也确认一下

clipboard

clipboard



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1903554,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
4月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
4月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
3月前
|
Linux 数据库 数据安全/隐私保护
|
3月前
|
SQL 监控 安全
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
|
4月前
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
|
4月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
187 1
|
4月前
|
存储 Linux
linux /www/server/cron内log文件占用空间过大,/www/server/cron是什么内容,/www/server/cron是否可以删除
linux /www/server/cron内log文件占用空间过大,/www/server/cron是什么内容,/www/server/cron是否可以删除
69 1
|
4月前
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
5月前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
88 1
|
4月前
|
运维 Linux 调度
Linux定时器的配置与管理方法
Linux定时器的配置与管理方法
下一篇
无影云桌面