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()

0 ответов

Другие вопросы по тегам