MySql数据库升级到8以上时,对于开发人员来说非常好用的数据批量导入的工具loaddata使用会出现一些小问题。
这里简单总结一下,如果可以帮大家省时间最好不过了
简单粗暴,围绕出啥错,为什么,怎么解决三点开始正文
错误:ERROR 1148: The used command is not allowed with this MySQL version
为啥:load data local可被利用为高危漏洞,所以8以上mysql默认关闭改功能
咋办:修改全局变量启用load data
set global local_infile = 1;
修改config启用load data local
[client]loose-local-infile = 1
错误:MySqlBulkLoader 报 promissions deny
为啥:5.6之前,这代码没问题,5.6之后的版本,默认local = false
咋办:代码加一段就可以了
var bulk = newMySqlBulkLoader(conn)
{
CharacterSet= "utf8mb4",
Local= true, #加这个,参考官方文档,文末有链接
FieldTerminator= ",",
FieldQuotationCharacter= ‘"‘,
EscapeCharacter= ‘"‘,
LineTerminator