MySQL中如何读取TXT文件:三种实用方法详解
在MySQL中,读取TXT文件内容主要可以通过LOAD DATA INFILE语句、命令行工具mysqlimport以及通过编程语言(如Python、PHP)作为中介这三种核心方法实现。LOAD DATA INFILE是MySQL原生支持的最高效、最常用的方式,它能直接将文本文件的数据高速导入到数据库表中。

使用LOAD DATA INFILE语句(推荐) 这是MySQL内置的专用数据导入命令,其基本语法如下:
LOAD DATA INFILE '文件路径/文件名.txt' INTO TABLE 表名 FIELDS TERMINATED BY '分隔符' -- ',' 或 '\t' LINES TERMINATED BY '行终止符'; -- '\n'
要将一个用逗号分隔的data.txt文件导入users表,可以执行:
LOAD DATA LOCAL INFILE '/tmp/data.txt' -- 注意文件路径和LOCAL关键字 INTO TABLE users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
关键点:
- 使用
LOCAL关键字可从客户端机器读取文件,否则文件需位于服务器端。 - 必须确保文件路径正确,且MySQL进程有相应的文件读取权限。
- 可以配合
IGNORE number LINES跳过文件头,或使用SET子句转换数据格式。
使用mysqlimport命令行工具
mysqlimport实际上是LOAD DATA INFILE的命令行封装,使用起来更为便捷。
mysqlimport --local -u 用户名 -p 数据库名 \ --fields-terminated-by=',' \ --lines-terminated-by='\n' \ 文件路径/文件名.txt
注意:工具会默认使用文件名(不含扩展名)作为目标表名。
通过编程语言中转处理
当需要更复杂的数据清洗或逻辑控制时,可借助Python、PHP等语言读取TXT文件,经过程序处理后再通过SQL语句插入MySQL,例如使用Python的pymysql库:
import pymysql
connection = pymysql.connect(host='localhost', user='user', password='pass', database='db')
with open('data.txt', 'r') as f, connection.cursor() as cursor:
for line in f:
data = line.strip().split(',')
cursor.execute("INSERT INTO table_name VALUES (%s, %s)", data)
connection.commit()
这种方法灵活性最高,适合处理非规范或需要实时预处理的文本数据。
重要注意事项:
- 权限与安全:使用
LOAD DATA INFILE时,需关注MySQL的secure_file_priv系统变量设置,它限制了可读取文件的目录。 - 数据格式匹配:务必确保TXT文件的字段数量、分隔符、数据类型与目标表结构严格匹配,否则会导致导入失败或数据错乱。
- 大数据量优化:对于大型文本文件,建议在导入前暂时禁用索引和约束,导入完成后再重建,可大幅提升速度。
对于直接的批量数据导入,应优先选择LOAD DATA INFILE;若需自动化或集成到脚本,可考虑mysqlimport;而涉及复杂业务逻辑时,则推荐通过编程接口实现,根据实际场景选择合适的方法,才能高效、准确地将TXT数据读入MySQL。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/14159.html发布于:2026-09-01





