(六)PowerShell 操作mysql数据库(SimplySql)

  1. 上次试的模块,最后发现只能试用,还有其他的方法,但是需要装connector,或者有data.dll,我想用的是单纯的模块就能满足查询,不需要安装其他软件,这次发现一个SimplySql模块,看说明可以和好多数据库(SQL Server, Oracle, PostgreSql, SQLite, & mySql))一起使用,而且看配置文件里把connector,或者有data.dll都包到里边了,感觉有戏,试一下,能不能满足我的要求
  2. 模块安装以及查看是否安装在会话中,没有的话,引入会话中
PS /Users/sixdog/Documents/PowerShell> Install-Module -Name SimplySql

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the 
Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y
PS /Users/sixdog/Documents/PowerShell> Get-Module SimplySQL                                                             
PS /Users/sixdog/Documents/PowerShell> Get-InstalledModule 

Version              Name                                Repository           Description
-------              ----                                ----------           -----------
1.9.1                SimplySql                           PSGallery            Querying SQL (SQL Server, Oracle, PostgreSql, SQLite, & mySql) the Powe…

PS /Users/sixdog/Documents/PowerShell> import-Module SimplySQL       
PS /Users/sixdog/Documents/PowerShell> Get-Module SimplySQL   

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     1.9.1                 SimplySql                           {Clear-SqlMessage, Close-SqlConnection, Complete-SqlTransaction, Get-SqlConnecti…

PS /Users/sixdog/Documents/PowerShell> 

3.模块怎么用,看看主页的各种文件,学习一下
3.1.首先看下这里about_SimplySql.help.txt,可以看下说明和例子
3.2.MySql的config.ps1文件,大致了解下
3.3使用Get-Help Invoke-SqlQuery查看下例子,好知道大致咋写

PS /Users/sixdog/Documents/PowerShell> Get-Help Invoke-SqlQuery -Examples

NAME
    Invoke-SqlQuery
    
SYNOPSIS
    Executes a query and returns data.
    
    
    -------------------------- EXAMPLE 1 --------------------------
    
    PS > Run a simple query and return the output
    
    Invoke-SqlQuery -Query "SELECT * FROM TABLE"
    
    
    
    
    -------------------------- EXAMPLE 2 --------------------------
    
    PS > Runs a simple query with parameters
    
    Invoke-SqlQuery -Query "SELECT * FROM TABLE WHERE col1=@id' AND colb > @someDate" -Parameters @{id = 1; someDate = (Get-Date)}

3.4.看着和其他语言写sql大差不差,但是突然想起咋连接也不知道咋写,不过这个只有语法,没有例子

PS /Users/sixdog/Documents/PowerShell> get-Help Open-MySqlConnection   

NAME
    Open-MySqlConnection
    
SYNTAX
    Open-MySqlConnection [[-Server] <string>] [[-Database] <string>] -Credential <pscredential> [-ConnectionName <string>] [-CommandTimeout <int>] [-P
    ort <int>] [-SSLMode {None | Required | VerifyCA | VerifyFull}] [<CommonParameters>]
    
    Open-MySqlConnection [[-Server] <string>] [[-Database] <string>] -UserName <string> -Password <string> [-ConnectionName <string>] [-CommandTimeout
     <int>] [-Port <int>] [-SSLMode {None | Required | VerifyCA | VerifyFull}] [<CommonParameters>]
    
    Open-MySqlConnection -ConnectionString <string> [-ConnectionName <string>] [-CommandTimeout <int>] [<CommonParameters>]
    

ALIASES
    None
    

REMARKS
    None


PS /Users/sixdog/Documents/PowerShell> get-Help Open-MySqlConnection -Examples

NAME
    Open-MySqlConnection

ALIASES
    None
    

REMARKS
    None


PS /Users/sixdog/Documents/PowerShell> 

3.5三种连接方式都试了,其实只有带-Credential才能用,其他的说是过期了,-Credential有个问题,密码每次都需要输入,但是确实是可以查询的

Open-MySqlConnection -Server "localhost" -Port "3307" -Credential "root" -Database "test"      
$data = Invoke-SqlQuery -query "SELECT * FROM User"
Write-Output $data
PS /Users/sixdog/Documents/PowerShell> ./test.ps1

PowerShell credential request
Enter your credentials.
Password for user root: ******


id username password
-- -------- --------
 1 张三     223456
 3 李四     123456
 4 王五     123456

PS /Users/sixdog/Documents/PowerShell> 

3.6上边每次都输入密码不是我想要的,我需要的是不用每次输入密码,借鉴了这位老哥帅哥的写法,最后解决了这个问题

$username = 'root'
$password = ConvertTo-SecureString -String "123456" -AsPlainText -Force
$credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $username,$password
Open-MySqlConnection -Server "localhost" -Port "3307" -Credential $credential -Database "test"     
$data = Invoke-SqlQuery -query "SELECT * FROM User"
Write-Output $data
#执行结果可以看到,没有再被提示输入密码
PS /Users/sixdog/Documents/PowerShell> ./test.ps1

id username password
-- -------- --------
 1 张三     223456
 3 李四     123456
 4 王五    123456

PS /Users/sixdog/Documents/PowerShell> 

4.成功,下一章打算试一试增删改查的增删改.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PowerShell是一种用于自动化任务和配置管理的命令行工具和脚本语言。在使用PowerShell操作MySQL之前,需要先下载MySQL Connector/NET作为MySQL的ADO.NET驱动程序。然后,通过System.Reflection中的Assembly Class来加载操作程序集(MySql.Data.dll)。 首先,需要配置连接MySQL的相关信息,包括服务器IP地址、数据库名称、用户名、密码和字符集等。可以使用以下代码创建一个连接字符串: $Server = "xxx.xxx.xxx.xxx" # MySQL服务器IP地址 $Database = "database name" # 数据库名称 $user = "username" # 用户名 $Password = "xxxxxxxxx" # 密码 $charset = "utf8" # 字符集 $connectionString = "server=$Server;uid=$user;pwd=$Password;database=$Database;charset=$charset;SslMode=none" $connection = New-Object MySql.Data.MySqlClient.MySqlConnection($connectionString) 接下来,可以使用以下代码打开与MySQL的连接: $connection.Open() 然后,可以执行MySQL语句,例如插入数据。使用以下代码创建一个执行插入操作MySQL命令对象: $insert = "INSERT INTO TableName (Column1, Column2) VALUES('Value1', 'Value2');" $insertCommand = New-Object MySql.Data.MySqlClient.MySqlCommand $insertCommand.Connection = $connection $insertCommand.CommandText = $insert $insertCommand.ExecuteNonQuery() 最后,可以关闭与MySQL的连接: $connection.Close() 这样就可以使用PowerShell操作MySQL数据库了。可以根据需要执行其他的MySQL操作,比如查询、更新和删除等。 如果想要在PowerShell中查看MySQL中是否有新数据,可以使用SQL查询语句来获取相关数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Powershell操作MySQL](https://blog.csdn.net/weixin_34280237/article/details/93819118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [powerShell、cmd中命令使用Mysql](https://blog.csdn.net/adhvnkj/article/details/127557523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值