一、Excel 文件转 CSV 文件
这一步的核心是把 Excel 的表格数据,转成 MySQL 更容易识别的 CSV 格式,避免数据格式错乱。
1. 新建 Excel 数据文件
首先创建一个 Excel 文件 student.xlsx,录入需要迁移的数据。以学生成绩表为例,数据结构如下:
| id(学号) | name(姓名) | score(分数) |
|---|---|---|
| 1 | 张三 | 88 |
| 2 | 李四 | 99 |
| 3 | 王五 | 90 |
保存文件时,注意文件名和数据列的对应关系,后续 CSV 会沿用这个表头。
2. 执行 Excel 转 CSV 操作
Excel 直接支持转 CSV 格式,无需额外工具,步骤如下:
- 打开刚才创建的 Excel 文件;
- 点击顶部「文件」选项卡,选择「另存为」;
- 在弹出的对话框中,选择文件保存路径(建议记下来,后续上传服务器要用);
- 「保存类型」下拉框中,选择「CSV(逗号分隔)(*.csv)」;
点击「保存」,完成转换。
3. 处理 CSV 文件字符集
如果 CSV 文件编码不是 UTF-8,导入 MySQL 时可能出现中文乱码。解决方法很简单:
- 用记事本打开转换好的
student.csv; - 点击「文件」-「另存为」,在「编码」下拉框中选择「UTF-8」;
覆盖原文件,完成编码调整。
二、CSV 文件导入 MySQL 数据库
这一步需要在 MySQL 中先准备好表结构,再把 CSV 数据'灌'进去,全程用命令行操作,清晰且高效。
1. 登录 MySQL 并开启本地导入权限
首先通过命令行登录 MySQL,注意要带 --local-infile=1 参数,允许本地文件导入:
mysql -uroot -p --local-infile=1
输入密码后登录成功,再执行命令开启全局导入权限(避免后续报错):
SET GLOBAL local_infile = 1;
2. 创建对应的 MySQL 数据表
先切换到要使用的数据库(这里用 martin 为例,没有的话先执行 create database martin; 创建):
USE martin;
然后创建和 CSV 数据匹配的表(表名 student_score,字段对应 id、name、score):
CREATE TABLE student_score (
id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学生学号',
name VARCHAR() COMMENT ,
score UNSIGNED COMMENT ,
(id)
) ENGINEInnoDB CHARSETutf8mb4 COMMENT ;


