哪个驱动程序应该安装,以便使用PowerShell运行mysql命令?

6

我安装了mysqlconnector [ODBC] 5.1.8来运行我的mysql命令,但是出现了以下错误:

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

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

我已经安装了最新版本的MySql,并且所有项目都可以很好地使用MySql。

3个回答

3
您需要安装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

2
请注意:LoadWithPartialName()已被弃用。Add-Type是PowerShell和.NET最新版本的首选方法。 - Bacon Bits

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 所在的目录。


0
将这个文件 MySql.Data.dll 放在 powershell.exe 所在的目录中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接