3948: Loading local data is disabled; this must be enabled on both the client and server sides(加载本地数据已禁用;必须在客户端和服务器端同时启用)
MySQL含义
您试图用 LOAD DATA LOCAL INFILE 从客户端文件加载数据,但该功能在客户端和/或服务器端被禁用。出于安全原因,MySQL 8 默认禁用 LOCAL。
原因
服务器上的 local_infile 系统变量为 OFF,和/或客户端驱动未启用 LOCAL INFILE。由于该功能可能让恶意服务器读取客户端文件,默认受到限制。
解决方法
如果确实需要,在两端同时启用:在服务器上执行 SET GLOBAL local_infile = 1; 在客户端启用驱动的 LOCAL INFILE 标志(例如 allowLoadLocalInfile 连接选项 / --local-infile=1)。从安全角度看,推荐的做法是将文件放到服务器上,使用不带 LOCAL 的 LOAD DATA INFILE,或使用批量 INSERT/导入工具。完成后再次禁用 local_infile。
同一数据库的其他条目
- 1194Table 'name' is marked as crashed and should be repaired(表 'name' 被标记为已崩溃,应当修复)
- 1615Prepared statement needs to be re-prepared(预处理语句需要重新准备)
- 1553Cannot drop index needed in a foreign key constraint(无法删除外键约束所需的索引)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key(表定义不正确;只能有一个自增列,且必须将其定义为键)
- 1055Expression not in GROUP BY (only_full_group_by)(表达式不在 GROUP BY 中)
- 1267Illegal mix of collations(非法的排序规则混用)
- 1030Got error N from storage engine(从存储引擎收到错误 N)