将 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
或者还有另一种解决方案在这里似乎有效:
对我有用的解决方案来自 link 中共享的解决方法:
Workbench 8.0.12 no longer allows LOAD DATA LOCAL INFILE 由@Zacca 分享。
Mac 的步骤:
- 创建一个 my.cnf 文件,在路径中包含以下语句:/etc。
我使用 root 用户创建了 my.cnf 文件。
[client]
port = 3306
[mysqld]
port = 3306
secure_file_priv=''
local-infile = 1
将my.cnf文件设置为MySqlWorkbench中的默认配置文件。
单击 实例 旁边的 扳手图标 。
在配置文件下,输入my.cnf文件的路径:/etc/my.cnf.
重新启动 MySQL 服务器 workbench。
在 MySQL Workbench 中尝试以下语句:
显示像“local_infile”这样的变量; //应该是ON
显示像“secure_file_priv”这样的变量; //应该没有值(不是NULL而是空白)
加载数据。
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。
幸福。
我正在使用 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
或者还有另一种解决方案在这里似乎有效:
对我有用的解决方案来自 link 中共享的解决方法: Workbench 8.0.12 no longer allows LOAD DATA LOCAL INFILE 由@Zacca 分享。
Mac 的步骤:
- 创建一个 my.cnf 文件,在路径中包含以下语句:/etc。 我使用 root 用户创建了 my.cnf 文件。
[client]
port = 3306
[mysqld]
port = 3306
secure_file_priv=''
local-infile = 1
将my.cnf文件设置为MySqlWorkbench中的默认配置文件。 单击 实例 旁边的 扳手图标 。 在配置文件下,输入my.cnf文件的路径:/etc/my.cnf.
重新启动 MySQL 服务器 workbench。
在 MySQL Workbench 中尝试以下语句: 显示像“local_infile”这样的变量; //应该是ON 显示像“secure_file_priv”这样的变量; //应该没有值(不是NULL而是空白)
加载数据。
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。 幸福。