我安装了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。
答案 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所在的目录中