我正在尝试从Windows环境将一个包含CREATE/DROP/INSERT命令的dump文件(.sql文件)导入到远程MySQL服务器。我使用安装在我的环境中的"MySQL shell utility"功能来完成这个任务。
Set-ExecutionPolicy RemoteSigned
Add-Type –Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.11\Assemblies\v4.5.2\MySql.Data.dll'
$Connection = [MySql.Data.MySqlClient.MySqlConnection]@{ConnectionString='server=192.168.100.100;Encrypt=false;uid=myUser;pwd=myPass;database=myDB;'}
$Connection.Open()
$sql = New-Object MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $Connection
$sql.CommandText = "SOURCE D:/MySQL_Dumps/myFile.sql"
$sql.ExecuteNonQuery()
$Reader.Close()
$Connection.Close()
我可以连接到服务器并执行基本的
SELECT
查询,使用ExecuteNonQuery()
/ExecuteScalar()
/ExecuteReader()
方法,但是对于这个特定的SOURCE命令,我收到了一个错误:
异常调用“ExecuteNonQuery”与“0”参数(s):“您有一个错误 在您的SQL语法中;检查手册对应于您的MySQL服务器的版本 使用附近的正确语法'源 D:/MySQL_Dumps/myFile.sql'在线1" 在行:8字符:1 + $sql.ExecuteNonQuery() + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : MySqlException我尝试了几种输入路径的替代方法,比如使用双斜杠或双反斜杠,但遇到了同样的错误。有人能帮忙吗?
$sql.CommandText = Get-Content D:\MySQL_Dumps\myFile.sql -Raw
- iRonD:\MySQL_Dumps\myFile.sql
文件中有什么内容?请将此信息添加到问题中(特别是如果您现在遇到了不同的错误)。 - iRon$sql.CommandText = "SOURCE D:/MySQL_Dumps/myFile.sql;"
。 - iRon