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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM