LOAD DATA LOCAL INFILE
命令用于从客户端的本地文件中加载数据到 MySQL 数据库。出于安全考虑,MySQL 默认禁用了这个功能,以防止未经授权的文件访问或文件上传。因此,必须在服务器端和客户端都明确启用 LOAD DATA LOCAL
功能。
解决方案:
1. 服务器端启用 LOCAL
选项
在 MySQL 服务器的配置文件 (my.cnf
或 my.ini
) 中,检查并添加以下设置:
ini
复制代码
[mysqld] local_infile=1
这将启用服务器端的 LOCAL
文件加载支持。保存文件并重启 MySQL 服务器。
2. 客户端启用 LOCAL
选项
在连接 MySQL 时,需要启用 local_infile
选项,具体方法取决于你使用的客户端工具:
-
使用命令行客户端: 在运行
mysql
命令时,添加--local-infile
选项:bash
复制代码
mysql --local-infile=1 -u your_username -p
-
通过 MySQL Workbench 或其他客户端工具: 如果使用 MySQL Workbench 或其他图形化工具,确保在连接设置中启用
local_infile
。
3. 检查 local_infile
是否启用
你可以使用以下 SQL 命令检查服务器是否已经启用了 local_infile
:
sql
复制代码
SHOW GLOBAL VARIABLES LIKE 'local_infile';
如果值为 OFF
,则说明服务器端尚未启用。
连接数据库前需要设置客户端启用 LOCAL
选项
// 设置 local_infile 选项 int local_infile = 1; mysql_options(mysql, MYSQL_OPT_LOCAL_INFILE, &local_infile);