将 csv 文件加载到 MySql 时出现错误代码:2068

Error Code: 2068 while loading csv file into MySql

我正在使用 Amazon RDS MySql 进行数据存储。我可以通过指定列值来加载数据,但是,当我尝试将数据从本地计算机加载到 MySql 时,它失败了 错误:2068.

LOAD DATA LOCAL INFILE '/Users/priya/Documents/Atlas/data/The_Atlas_0820.csv' INTO TABLE schedule 
 FIELDS TERMINATED by ','
 ENCLOSED by '"'
 LINES TERMINATED by '\n' IGNORE 1 LINES (Carrier1, FlightNo1, DupCar1,DupCar2, DupCar3, 
DupCar4,DupCar5, DupCar6,DupCar7, DupCar8,DepAirport, ArrAirport);

错误代码:2068。由于访问限制,LOAD DATA LOCAL INFILE 文件请求被拒绝。

我也检查了 SHOW GLOBAL VARIABLES LIKE 'local_infile';,它设置为 "ON"

如果我使用终端打开与 MySql 的连接并在那里执行命令,它工作正常。

$ ./mysql -h <hostname> -P 3306 --local_infile=1 -u <username> -p

但是如何让它在 MySql Workbench 中工作。

MySQL Workbench 中似乎有一个 LOAD DATA LOCAL INFILE 错误,请检查此 link 中的变通方法是否适合您:

MySQL Workbench 8.0 restricts usage of LOAD DATA LOCAL INFILE

或者还有另一种解决方案在这里似乎有效:

Workbench 8.0.12 no longer allows LOAD DATA LOCAL INFILE

对我有用的解决方案来自 link 中共享的解决方法: Workbench 8.0.12 no longer allows LOAD DATA LOCAL INFILE 由@Zacca 分享。

Mac 的步骤:

  1. 创建一个 my.cnf 文件,在路径中包含以下语句:/etc。 我使用 root 用户创建了 my.cnf 文件。
[client]
port        = 3306
[mysqld]
port        = 3306
secure_file_priv=''
local-infile = 1
  1. 将my.cnf文件设置为MySqlWorkbench中的默认配置文件。 单击 实例 旁边的 扳手图标 。 在配置文件下,输入my.cnf文件的路径:/etc/my.cnf.

  2. 重新启动 MySQL 服务器 workbench。

  3. 在 MySQL Workbench 中尝试以下语句: 显示像“local_infile”这样的变量; //应该是ON 显示像“secure_file_priv”这样的变量; //应该没有值(不是NULL而是空白)

  4. 加载数据。

LOAD DATA LOCAL INFILE '<path>/file.csv' INTO TABLE <tablename> 
 FIELDS TERMINATED by ','
 ENCLOSED by '"'
 LINES TERMINATED by '\n' IGNORE 1 LINES;

使用LOCAL关键字,加载成功。 但是,如果没有 LOCAL 关键字,我会遇到访问错误。

错误代码:1045。用户 'admin'@'%' 的访问被拒绝(使用密码:YES)

为此苦思冥想一个小时后,我切换回 MySQL Workbench 6.3。 幸福。