如何将Excel表格数据一键导入MySQL数据库表中?

梦丽大大_3061

梦丽大大_3061

2026-06-26

642人浏览

原创

navicat导入excel字段映射错乱需手动拖拽对齐列名,确保excel首行为纯英文字段名;load data infile受secure_file_priv限制,须查路径并用正斜杠;python导入大excel应转csv+分块读取+指定dtype;中文乱码需utf-8无bom编码及utf8mb4字符集;主键冲突默认静默跳过,需选“更新现有记录”。

如何将excel表格数据一键导入mysql数据库表中?

Navicat 导入 Excel 时字段映射错乱怎么办

Navicat 的 Excel 导入向导默认按列顺序硬匹配,不校验字段名,极易把“姓名”塞进 age 字段、把日期当字符串处理。关键不是点“下一步”快,而是卡在第 4 步的「字段映射」界面必须手动拖拽对齐。

  • 导入前确保 Excel 第一行是纯英文字段名(如 user_id、created_at),不能含空格或中文括号
  • 进入映射页后,左侧是 Excel 列(Column 1、Column 2…),右侧是目标表字段(id、name…),必须逐个用鼠标拖动连接,不能依赖自动识别
  • 若目标表有 id 主键且 Excel 无对应列,右侧勾选 id 后,左侧留空——Navicat 会自动跳过该字段,由 MySQL 自增填充
  • 时间列(如 2024/05/01)在映射时右下角需点开「类型」下拉菜单,显式选 DATETIME,否则默认存为 VARCHAR

LOAD DATA INFILE 导入 CSV 为什么报错 “Secure File Priv”

LOAD DATA INFILE 是 MySQL 原生命令,速度快但受安全限制:默认只允许读取 secure_file_priv 配置目录下的文件,直接写本地路径(如 'C:/data.csv')必然失败。

excel-clean
excel-clean

Excel 数据清洗——去重、填补缺失值、格式转换。

下载
  • 先执行 SHOW VARIABLES LIKE 'secure_file_priv'; 查看允许路径,常见返回值是 /var/lib/mysql-files/(Linux)或 C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\(Windows)
  • Excel 必须另存为 UTF-8 编码的 CSV,且首行必须是字段名;用记事本打开确认无 BOM 头(BOM 会导致第一列乱码)
  • 命令中路径用正斜杠,且必须省略盘符:正确写法是 LOAD DATA INFILE '/var/lib/mysql-files/data.csv' ...,而非 'C:/data.csv'
  • 如果非要从任意路径读,需修改 MySQL 配置文件 my.cnf,添加 secure_file_priv='' 并重启服务——但生产环境严禁这么做

Python 脚本导入大 Excel 文件内存爆掉怎么破

用 pandas.read_excel() 直接读百万行 Excel,Python 进程常吃光 8GB 内存然后崩溃。根本问题在于 Excel 格式(.xlsx)是压缩 XML,pandas 解压+解析开销极大。

  • 优先转成 CSV:用 Excel「另存为」→「CSV UTF-8」,再用 pandas.read_csv(),内存占用降为 1/5
  • 分块读取:对超大 CSV,加参数 chunksize=10000,循环调用 to_sql() 插入,避免单次加载全量数据
  • 关闭索引插入:to_sql(..., index=False),否则 pandas 会额外生成一列 index,导致字段数不匹配
  • 指定 dtype:对数字列强制 dtype={'age': 'Int64'}(注意大写 I),避免 pandas 把空单元格识别为 float64 然后写入 MySQL 时报类型错误

中文乱码和主键冲突是最容易被忽略的两个坑

前者让“张三”变“张三”,后者让导入中途停在第 127 行——表面成功,实际只写入了部分数据。

  • Excel 保存 CSV 时必须选「UTF-8 with BOM」(Windows 记事本选项)或「UTF-8 without BOM」(VS Code),用 Excel 自带「另存为 CSV」会默认 ANSI 编码,中文必乱
  • 目标表建表语句里,所有 VARCHAR 字段必须显式声明 CHARSET=utf8mb4,仅靠数据库默认字符集不够,例如:name VARCHAR(50) CHARSET=utf8mb4
  • 主键冲突不会报错中断,而是静默跳过——Navicat 默认模式是「插入新记录」,遇到重复 PRIMARY KEY 直接丢弃整行。如需覆盖,导入向导第 5 步要选「更新现有记录」并勾选主键字段

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql excel excel表格

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

2073

6

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.21

1279

5

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

735

5

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.19

2792

5

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.25

4648

4

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.08

1079

3

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.11

4911

4

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

2023.08.14

4382

7

mysql事务隔离级别
mysql事务隔离级别

mysql规范中定义了四种事务隔离级别,不同的隔离级别对事务的处理有所不同。本专题为大家提供mysql事务隔离级别相关的文章内容,大家可以免费体验。

2023.08.16

5714

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 178人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 286人学习