我正在尝试通过 Ubuntu 18 上运行的 PowerShell 访问 MySQL,但在加载程序集时遇到了一些问题。以下是在 Windows 上运行的代码。
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
$Connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$Connection.ConnectionString = $ConnectionString
$Connection.Open()
$Command = New-Object MySql.Data.MySqlClient.MySqlCommand($query, $Connection)
$DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command)
$DataSet = New-Object System.Data.DataSet
$RecordCount = $dataAdapter.Fill($dataSet, "data")
$returnVariable = $DataSet.Tables[0]
PS 在 Ubuntu 上抛出错误的行是第 1 行 [void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
我尝试将一些 dll 从本地 Windows PC 复制到同一个文件夹,看看是否有区别。
MySQL 服务器正在运行我所运行脚本的 ubuntu 机器上。
这是可能的吗?或者我的 Ubuntu 上的 PS 语法错误?或者我需要在服务器上加载其他东西?
我会继续我的搜索,但目前还没有得到太多的答案。
答案1
这是一个语法问题:
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
变成:
add-type -path "/home/ubuntu/MySql.Data.dll"
并且现在已成功运行。