Mit der PowerShell auf eine MySQL-Datenbank zuzugreifen ist eigentlich recht einfach, da vorhandene .NET-Klassen in der PowerShell verwendet werden können. Man benötigt nur die entsprechenden Klassen für den MySQL-Zugriff. Das ist in meinem Fall der MySQL Connector/Net 5.1. Die früheren Versionen funktionieren mit meiner Datenbank nicht (MySQL-Version 5.0):
Error connecting to the server: Unable to connect to any of the specified MySQL hosts.
Der Download ist zwar eine MSI-Datei, man benötigt aber lediglich die MySql.Data.dll aus dem Verzeichnis Binaries\.NET 2.0, nachdem die Installation abgeschlossen ist. Diese muss im selben Verzeichnis liegen, wie das folgende Script. Alternativ kann man auch in Zeile 5 einen konstanten Pfad angeben.
# the connection string used to connect to the database
$connString = "Server=localhost;Uid=benutzer;Pwd=password";
#
# get the script's execution path
$myPath = Split-Path -Parent $MyInvocation.MyCommand.Path;
#
# load MySQL driver and query database
[void][system.reflection.Assembly]::LoadFrom($myPath + "\MySQL.Data.dll");
$conn = New-Object MySql.Data.MySqlClient.MySqlConnection;
$conn.ConnectionString = $connString;
$conn.Open();
$command = New-Object MySql.Data.MySqlClient.MySqlCommand;
$command.Connection = $conn;
$command.CommandText = "SELECT * FROM table";
$reader = $command.ExecuteReader();
while($reader.Read())
{
write-host $reader.GetString(0);
}
Auch ganz gut ist dieser Artikel (http://www.idera.com/richardsworld/post/Getting-MySql-Results-with-PowerShell.aspx).
Geht einen anderen Weg zum Datenauslesen (nutzt MySQL.DataAdapter).
Pingback:Rolands Erinnermich » Blog Archiv » Lessons learn Powershell 1.0
Ein sehr schönes und komplettes Beispiel, danke, das war sehr hilfreich!