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

时间:2011-02-26 09:16:43

标签: mysql database powershell connector

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

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

我应该在powershell上安装from the mysql connectors site哪个驱动程序来运行此命令(或任何MySql命令)?

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

您需要在$pshome目录中创建一个配置文件,以允许Powershell与.NET 4程序集一起运行。 This answer提供了相应的解决方案,这些注释为64位计算机提供了一些有用的信息。

如果您遇到LoadWithPartialName的问题...原来是deprecated as of Powershell 3.0。这个替代方案可以在2和3中使用,并且可能更容易进行故障排除,因为它是一个cmdlet:

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

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

答案 2 :(得分:0)

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