c# - 即使我添加了AllowLoadLocalInfile,该MySQL版本也不允许使用该命令

标签 c# mysql .net mysql-connector

我正在尝试使用 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/

相关文章:

c# - 如何防止 Visual Studio 每次都构建项目?

php - 学说中的实体多对多(symfony2)

mysql - 在 phpmyadmin SQL 选项卡上使用 IF 语句

mysql - 无法为 mysql 中的用户分配权限

asp.net - 为什么这个 DateTime.ParseExact 语句不起作用?

c# - 具有返回类型的方法的线程池

c# - 无法正则表达式替换

c# - 使用重叠面板创建选项菜单

c# - NHibernate 可以在不使用批处理或 Criteria API 的情况下解决 N+1 的订单-> 客户关系吗?

c# - 无法加载文件或程序集 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一