Powershell 连接MySQL

Powershell连接SQL Server一般都是直接使用Invoke-sqlcmd,这个很方便,但是有时候还是会需要连接到其他数据库,像MySQL。

这里是对Powershell连接MySQL研究的一个总结:

连接MySQL是通过.net框架的,所以必须先安装 MySQL .Net Connector (http://dev.mysql.com/downloads/connector/net/)

如果不想安装MySQL .Net connector 也可以直接在其他已安装的机器上拷贝MySql.Data.dll 到需要使用的机器上。

连接方式:

如果是安装了MySQL .Net Connector

[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")

如果是直接通过MySQL.Data.dll文件

$mySQLDataDLL = "C:\scripts\mysql\MySQL.Data.dll"
[void][system.reflection.Assembly]::LoadFrom($mySQLDataDLL)

读取DLL后我们便可以进行处理:

复制代码
$connectionStr = "Server=192.168.1.1;Uid=user;Pwd=user123;database=mydb;"
$querysql = "select msg from messages limit 1;"

$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = $connectionStr
$connection.Open()
$command = New-Object MySql.Data.MySqlClient.MySqlCommand($querysql, $connection)
$dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command)
$dataSet = New-Object System.Data.DataSet
$recordCount = $dataAdapter.Fill($dataSet)
$dataSet.Tables[0]
复制代码

到这里我们会获得一个System.Data.DataSet对象,我们通过Tables[0]返回第0个表集,这已经可以返回我们需要的数据集了,但是如果我们要进一步的处理行集的话:

$table = $dataSet.Tables[0]
foreach($row in $table.Rows) {
    $row.msg
}

 

如果你想知道这个table中有多少列可以使用下面的方法:

$table.columns | Format-Table

 

 

 

posted on   trams  阅读(5494)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
< 2012年7月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

统计

点击右上角即可分享
微信分享提示