MySQL Powershell импорт
Я перепробовал все, что я могу найти в существующих темах, извинения, если это исправительно.
У меня есть открытое и работающее соединение с моей базой данных для скрипта пакетного импорта. Я хотел бы, помимо импорта пользователей, заполнить их базы данных предустановленным файлом.sql. У меня есть файл в каталоге Bin для MySQL в Windows C:\Program Files\MySQL\MySQL Server 5.7\bin, и мой каталог, из которого запускается Powershell.
Файл SQL импортируется правильно, если он запускается из mysql 5.7 cli с:
Use db_name;
Source db_file.sql
Есть ли способ сделать это в моем открытом соединении через PS с помощью "CommandText" или мне нужно выполнить отдельную команду с проверкой подлинности после закрытия пользовательского соединения импорта? Вот что сейчас работает: я хочу добавить импорт.sql в конце.
[void][system.reflection.Assembly]::LoadWithPartialName("MySql.Data")
$connStr ="server=localhost;Persist Security Info=false;user id=USERNAME" + $dbusername + ";pwd=PASSWORD" + $dbpassword + ";"
$conn = New-Object MySql.Data.MySqlClient.MySqlConnection($connStr)
$conn.Open()
$cmd = New-Object MySql.Data.MySqlClient.MySqlCommand
$cmd.Connection = $conn
$cmd.CommandText = "CREATE USER '$usr'@'%' IDENTIFIED BY '$pass';"
$cmd.ExecuteNonQuery()
$cmd.CommandText = "CREATE SCHEMA $usr"
$cmd.ExecuteNonQuery()
$cmd.CommandText = "GRANT ALL PRIVILEGES ON $usr.* TO '$usr'@'%';"
$cmd.ExecuteNonQuery()
$cmd.CommandText = "GRANT ALL PRIVILEGES ON $group.* TO '$usr'@'%';"
$cmd.ExecuteNonQuery()
$conn.Close()