LOAD FILE
是 MySQL 中的一个内置函数,用于从本地文件系统读取数据并将其导入到数据库表中。这个函数允许你直接将文本文件或其他可读的二进制文件加载到数据库中,而无需编写复杂的脚本或使用其他工具。
LOAD FILE
函数的基本语法如下:
LOAD DATA LOCAL INFILE 'file_path'
INTO TABLE table_name
FIELDS TERMINATED BY 'field_separator'
ENCLOSED BY 'enclosed_character'
LINES TERMINATED BY 'line_separator'
IGNORE number_of_lines;
参数说明:
file_path
:要加载的文件路径。确保文件路径是 MySQL 服务器可以访问的。如果使用绝对路径,请确保路径正确;如果使用相对路径,请确保相对路径与当前工作目录相关。table_name
:要将数据导入到的目标表名。field_separator
:用于分隔表中各个字段的字符。默认值是逗号(,
)。enclosed_character
:用于包围字段值的字符。默认值是双引号("
)。line_separator
:用于分隔表中的每一行。默认值是换行符(\n
)。ignore_number_of_lines
:要忽略的文件开头行数。默认值为 0,表示不忽略任何行。使用 LOAD FILE
函数时,需要注意以下几点:
确保 MySQL 服务器配置允许使用 LOAD DATA LOCAL INFILE
功能。在某些系统上,出于安全原因,该功能可能被禁用。你可以检查 MySQL 服务器的配置文件(通常是 my.cnf
或 my.ini
),并确保以下设置已启用:
[mysqld]
local-infile=1
如果更改了配置文件,请重新启动 MySQL 服务器以使更改生效。
确保文件和表具有正确的权限。MySQL 用户需要有足够的权限访问指定的文件路径和表。
如果文件很大,考虑使用流式处理或其他方法将其分割成较小的部分,以便更有效地导入数据。
如果遇到编码问题,确保文件的编码与数据库字符集兼容。如果需要,可以在 LOAD DATA INFILE
语句中使用 CHARACTER SET
子句指定字符集。