Какой драйвер я должен установить, чтобы mysqlcommand мог запускаться с помощью powershell? - PullRequest
4 голосов
/ 26 февраля 2011

Я установил mysqlconnector [ODBC] 5.1.8 для запуска моей команды mysql, но я получил эту ошибку:

Cannot find type [MySql.Data.MySqlClient.MySqlConnection]: make sure the assembly containing this type is loaded

Какой драйвер следует установить с сайта коннекторов mysql , чтобы запустить эту команду (или любую команду MySql) на powershell?

В моей системе установлена ​​последняя версия MySql, и все проекты работают с MySql очень хорошо.

Ответы [ 3 ]

2 голосов
/ 26 февраля 2011

Вы должны установить Connector / Net, он устанавливает себя в GAC и доступен как любая другая сборка .Net.

Тогда вы можете сделать, например,

[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
$connectionString = "server=myserver;uid=myuser;pwd=mypass;database=mydb;"
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
$sql = "show tables"
$command = New-Object MySql.Data.MySqlClient.MySqlCommand($sql, $connection)
$dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command)
$table = New-Object System.Data.DataTable
$recordCount = $dataAdapter.Fill($table)
echo $table
echo $table | ogv
0 голосов
/ 31 марта 2015

положить этот файл MySql.Data.dll в каталоге, где находится powershell.exe

0 голосов
/ 19 августа 2013

Для тех, кто получает эту ошибку при запуске Powershell 2.0 и использовании .NET 4, процедура немного отличается. Вам все еще понадобится .NET-разъем.

Вам потребуется создать файл конфигурации в каталоге $pshome, чтобы разрешить запуск Powershell со сборками .NET 4. Этот ответ предоставляет подходящее решение для этого, и в комментариях содержится некоторая полезная информация для 64-битных компьютеров.

Если у вас возникли проблемы с LoadWithPartialName ... оказывается, что устарело с Powershell 3.0 . Эта альтернатива будет работать как в 2, так и в 3, и, возможно, ее будет легче устранить, поскольку это командлет:

Add-Type -Path '$path\MySql.Data.dll'

Где $ path - это каталог, в котором находится MySql.Data.dll.

...