最近再用Python寫一些監控腳本,並將監控數據輸出到MySQL中,最后通過Python抓取MySQL中的數據進行監控匯總告警
考慮到一些微軟產品使用Powershell更為方便,於是找了些資料,嘗試Powershell操作M有SQL的可能性,方法如下:
在使用Powershell操作MySQL之前,我們需要下載MySQL Connector/NET(Connector/NET is a fully-managed ADO.NET driver for MySQL)
目前最新版本為:8.0.12,下載連接https://dev.mysql.com/downloads/connector/net/
下載后得到msi,安裝路徑:C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.12\Assemblies\v4.5.2\MySql.Data.dll,我們主要就是
使用這個dll文件,將其copy出來,放到腳本服務器上。
然后,我們通過System.Reflection中的Assembly Class來加載,操作程序集(MySql.Data.dll),核心代碼(紅色字體需自定義):
$mySQLDataDLL = "C:\mysql\MySql.Data.dll" #dll文件的絕對路徑
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
[void][system.reflection.Assembly]::LoadFrom($mySQLDataDLL)
#連接MySQL
$Server = "
xxx.xxx.xxx.xxx" #IP地址
$Database = "
database name"
$user = "
username"
$Password = "
xxxxxxx"
$charset = "utf8"
$connectionString = "server=$Server;uid=$user;pwd=$Password;database=$Database;charset=$charset;SslMode=none"
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection($connectionString)
$connection.Open()
#執行MySQL
$insert = "INSERT INTO
Tables Name (
依據表結構) VALUES(xxxxxxxxx);"
$insertcommand = New-Object MySql.Data.MySqlClient.MySqlCommand
$insertcommand.Connection = $connection
$insertcommand.CommandText = $insert
$insertcommand.executenonquery()
#關閉連接
$connection.Close()
執行后,我們查看一下MySQL中是否有新數據
