【问题标题】:secure-file-priv error while importing csv file in sql在 sql 中导入 csv 文件时出现安全文件私有错误
【发布时间】:2019-06-17 09:41:02
【问题描述】:

我正在尝试在 sql 中导入 csv 文件,请找到以下代码:

LOAD DATA INFILE 'C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\Assignment\Auto.csv' INTO TABLE assignments.Auto 以“,”结尾的字段 以“\r\n”结尾的行 忽略 1 行;

它给了我错误:

错误代码:1290。MySQL 服务器使用 --secure-file-priv 选项运行,因此无法在 0.016 秒内执行此语句

然后我尝试使用关键字 LOCAL(如某些解决方案中所述),它给了我错误:

错误代码:1148。此 MySQL 版本 0.000 秒不允许使用的命令

因为我找到了很多解决方案,所以我在会话中使用命令手动检查了这个变量的值:

显示变量,例如“secure_file_priv”;

这个输出是:

secure_file_priv C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\

**这与我在上面的加载数据路径中使用的位置相同。

我检查了 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini 文件,它有以下详细信息:

安全文件隐私

secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads" 谁能告诉我这里有什么问题,我该如何解决。

【问题讨论】:

    标签: mysql sql mysql-workbench load-data-infile mysqlimport


    【解决方案1】:

    如果要使用LOAD DATA LOCAL INFILE …,则需要将 MySQL 服务器全局变量 local_infile 设置为 true。

    SET GLOBAL local_infile = true;
    

    您还需要将--local-infle 选项传递给mysql 命令行客户端

    mysql --local-infile -hlocalhost -uroot -p
    

    关于安全文件 priv 错误 - 您的 Auto.csv 文件是否位于运行 MySQL 服务器的同一台机器上?

    【讨论】:

      【解决方案2】:
      SHOW VARIABLES LIKE "secure_file_priv";
      

      这个命令会显示路径,例如

      C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/
      

      将您的文件放在上传的相同路径中 还要检查两个路径中的反斜杠。如果不同,请更改您的代码。 我做了这两个步骤,它在 MySQL 8 中得到了解决。

      【讨论】:

        猜你喜欢
        • 2019-04-05
        • 2018-01-25
        • 2018-08-25
        • 2013-12-19
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        • 2016-01-03
        • 1970-01-01
        相关资源
        最近更新 更多