我正在尝试使用 mysqlbulkloader 类,即使我将AllowLoadLocalInfile=true 添加到我的连接字符串,我也会收到以下错误。
错误:此 MySQL 版本 e 不允许使用的命令
byte[] byteArray = Encoding.ASCII.GetBytes(str1);
MemoryStream stream = new MemoryStream(byteArray);
using (MySqlConnection mConnection = new MySqlConnection("server=127.0.0.1;port=3306;database=testDB;uid=testUser;pwd=pass;AllowLoadLocalInfile=true;"))
{
MySqlBulkLoader bcp1 = new MySqlBulkLoader(mConnection);
bcp1.SourceStream = stream;
bcp1.TableName = "TableA";
bcp1.FieldTerminator = ",";
bcp1.LineTerminator = "\r\n";
bcp1.Local = true;
mConnection.Open();
bcp1.Load();
}
有人知道我为什么会收到这个吗?
最佳答案
确保local-infile
MySQL 服务器变量设置为ON
。默认情况下,在 MySQL Server 8.0.2 或更高版本中,它为 OFF
,这会禁用任何客户端的 LOAD DATA LOCAL
;这个is a security feature .
关于c# - 即使我添加了AllowLoadLocalInfile,该MySQL版本也不允许使用该命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57756246/