问题描述
参考官方文档从服务器本地文件导入数据到表中时执行语句报错,参考文档:https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html
执行错误信息反馈如下:
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
问题原因
MySQL 默认关闭了本地数据加载功能
解决方法
开启本地数据加载功能,参考文档:
https://dev.mysql.com/doc/refman/8.0/en/load-data-local-security.html
服务器端:
先连接 MySQL 服务:
mysql -u root -p
查看全局系统变量:
show global variables like 'local_infile';
然后开启本地数据加载功能
set global local_infile=ON;
客户端:
连接服务时指定开启或关闭本地数据加载功能,如果关闭则需要通过 --load-data-local-dir 指定本地数据加载目录
mysql --local-infile=0 --load-data-local-dir=/my/local/data
当然你直接设置 local-infile 为 1 ,这样就不用设置文件夹限制了
如果启用了数据加载,则默认情况下在 MySQL 客户端库中或通过指定 --local-infile[=1],将忽略 --load-data-local-dir 选项。
如果禁用了数据加载,则默认情况下在 MySQL 客户端库中或通过指定 --local-infile=0,则应用 --load-data-local-dir 选项