MySQL load data local infile 关于ERROR 1148 (42000): The used command is not allowed with this MySQ...

转载  https://www.jianshu.com/p/413719cfdeb1

 

 

今天下午尝试着用load data local infile方法将本地文件导入到MySQL里面,然后程序报了一下错误
ERROR 1148 (42000): The used command is not allowed with this MySQL version
网上查了下,是因为local_infile这个功能默认是禁止(local_infile=0,启动的话要改为1)的,需要把这个功能打开,网上有很多方法,这边说一下我能成功导入的方法:
第一步在my.ini文件中添加语句loose-local-infile=1
第二步运行的时候设置全局变量 set global local_infile=1
第一步的具体做法:
首先找到my.ini这个文件,可以在服务那边找,右击MySQL,点击属性

MySQL load data local infile 关于ERROR 1148 (42000): The used command is not allowed with this MySQ..._第1张图片

image.png


我的my.ini文件在F盘,一般在C盘的program data文件里面(这个文件夹是隐藏的,需要手动显示)
然后添加loose-local-infile=1,这个ini文件可以用记事本打开

MySQL load data local infile 关于ERROR 1148 (42000): The used command is not allowed with this MySQ..._第2张图片

image.png


保存就可以了,为了保险起见,我重新进了下命令行。
第二步设置全局变量:
在命令行输入
set global local_infile=1,运行;
然后查询local_infile参数,已经on了;

MySQL load data local infile 关于ERROR 1148 (42000): The used command is not allowed with this MySQ..._第3张图片

image.png


最后倒入csv数据文件,导入成功。

image.png


其中,fields terminated by ','表示用逗号分隔,因为csv文件是用逗号分隔的。
:经过测试,只做两步中的其中一步,都会报1148的错误。
呼!写起来没多少,这个问题搞了一下午,之前一直以为loose-local-infile=1这个语句是要在命令行运行的,大部分时间都在想在哪运行。。。很无语的碎碎念一番。
第二天重新load data local infile的时候,又出现了1148 的错误,需要重新设置全局变量,好吧,看来每次关了之后再打开都得重新设置变量,反正local_infile参数是on的话应该就可以了。

 

你可能感兴趣的:(MySQL load data local infile 关于ERROR 1148 (42000): The used command is not allowed with this MySQ...)