5

我安装了 mysqlconnector [ODBC] 5.1.8 来运行我的 mysqlcommand,但是我收到了这个错误:

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

我应该从 mysql 连接器站点安装哪个驱动程序以在 powershell 上运行此命令(或任何 MySql 命令)?

我的系统中安装了最新版本的 MySql,所有项目都使用 MySql 运行良好。

4

3 回答 3

2

您应该安装 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
于 2011-02-26T13:41:38.620 回答
0

对于收到此错误且运行 Powershell 2.0 并使用 .NET 4 的任何人,该过程略有不同。您仍然需要 .NET 连接器。

您需要在$pshome目录中创建一个配置文件以允许 Powershell 与 .NET 4 程序集一起运行。 这个答案提供了一个适当的解决方案,并且评论中有一些对 64 位机器有用的信息。

如果您遇到麻烦LoadWithPartialName... 原来它已被弃用 Powershell 3.0。此替代方案适用于 2 和 3,并且由于它是一个 cmdlet,因此可能更容易排除故障:

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

其中 $path 是所在的目录MySql.Data.dll

于 2013-08-19T15:03:32.287 回答
0

将此文件 MySql.Data.dll 放在 powershell.exe 所在的目录中

于 2015-03-31T20:12:53.123 回答