Ich habe ein Powershell-Skript, das meine MySQL DB jede Nacht mit mysqldump sichert. Das alles funktioniert gut, aber ich möchte das Skript erweitern, um eine Reporting-DB (db1) aus der Sicherung der prod db (db2) zu aktualisieren. Ich habe das folgende Testskript geschrieben, aber es funktioniert nicht. Ich habe das Gefühl, das Problem ist das Lesen der SQL-Datei in den CommandText, aber ich bin mir nicht sicher, wie zu debuggen.Ausführen eines SQL-Skripts gegen MySQL mit Powershell
[system.reflection.assembly]::LoadWithPartialName("MySql.Data")
$mysql_server = "localhost"
$mysql_user = "root"
$mysql_password = "password"
write-host "Create coonection to db1"
# Connect to MySQL database 'db1'
$cn = New-Object -TypeName MySql.Data.MySqlClient.MySqlConnection
$cn.ConnectionString = "SERVER=$mysql_server;DATABASE=db1;UID=$mysql_user;PWD=$mysql_password"
$cn.Open()
write-host "Running backup script against db1"
# Run Update Script MySQL
$cm = New-Object -TypeName MySql.Data.MySqlClient.MySqlCommand
$sql = Get-Content C:\db2.sql
$cm.Connection = $cn
$cm.CommandText = $sql
$cm.ExecuteReader()
write-host "Closing Connection"
$cn.Close()
Jede Hilfe wäre willkommen. Vielen Dank.
Ich verstehe nicht, was das 'Mysql.Data' Teil ist (aufgrund meiner Unwissenheit von fortgeschrittener Powershell, nicht weil es unklar ist), aber wäre es nicht einfacher, stattdessen den Befehlszeilen-mySQL-Client zu verwenden? –
Pekka Ich benutze Powershell, damit ich den Taskplaner verwenden kann, um es jede Nacht auszuführen. – abarr