在MySQL中使用加载数据本地填充时出现错误1148(42000)
我正在尝试使用load data LOCAL Infle将数据加载到MySQL表中,方法是:在MySQL中使用加载数据本地填充时出现错误1148(42000),mysql,mysql-error-1064,Mysql,Mysql Error 1064,我正在尝试使用load data LOCAL Infle将数据加载到MySQL表中,方法是: LOAD DATA LOCAL INFILE 'f.csv' INTO TABLE tableName FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES (C1, C2, C3, C4) SET
LOAD DATA LOCAL INFILE 'f.csv' INTO TABLE tableName
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\\r\\n'
IGNORE 1 LINES
(C1, C2, C3, C4)
SET cmj = REPLACE(@cmj,',','.');
操作系统:Ubuntu 14.04
MySQL:5.7
在文件my.cnf中,我有以下配置:
[mysqld]
local-infile=1
[mysql]
local-infile=1
[client]
loose-local-infile=1
local-infile=1
我得到以下错误:
消息:SQLSTATE[42000]:语法错误或访问冲突:1148
此MySQL版本不允许使用used命令,查询为:LOAD
将“f.csv”数据本地填充到以
';' 以“\r\n”终止的行忽略1行(C1、C2、C3、C4)
我认为问题与MySQL中的新品有关
谢谢你的帮助
编辑
在my file.csv中,我有两行(标题+值)。如果我将请求“忽略1行”更新为“忽略0行”,则插入第一行(标题)
所有线路都被视为一条线路 连接数据库时使用--local infle
mysql -hhostname -uusername -p --local-infile test -A
希望这有帮助。连接数据库时使用--local infle
mysql -hhostname -uusername -p --local-infile test -A
希望这有帮助。根据,您收到的错误可能是由于服务器端或客户端禁用了本地
文件功能所致
使用--local infle
选项运行mysql
将在客户端启用local
功能,但如果在服务器上禁用该功能,则不会有帮助,因为该功能由系统变量local\u infle
控制。解决此问题的最简单方法是在运行时使用SET
命令重置系统变量:
SET GLOBAL local_infile = 1;
注意:在MySQL的更高版本中,您可以通过以下命令使变量更改在服务器重新启动时保持不变
SET PERSIST local_infile = 1;
根据,您收到的错误可能是由于服务器端或客户端禁用了本地
文件功能所致
使用--local infle
选项运行mysql
将在客户端启用local
功能,但如果在服务器上禁用该功能,则不会有帮助,因为该功能由系统变量local\u infle
控制。解决此问题的最简单方法是在运行时使用SET
命令重置系统变量:
SET GLOBAL local_infile = 1;
注意:在MySQL的更高版本中,您可以通过以下命令使变量更改在服务器重新启动时保持不变
SET PERSIST local_infile = 1;
mysql-h localhost-uroot-p--local infle