MySQL 8.4 + Poetry 数据库导入记录
本文档总结了在 Windows 11 + Winget 安装 MySQL 8.4 的环境下,从安装 MySQL 到成功导入 85 万首古诗词数据的完整流程。
1. 安装 MySQL
使用 Winget 安装:
powershell
winget install Oracle.MySQL安装完成后,MySQL 服务未自动注册,需要手动安装服务:
powershell
cd "C:\Program Files\MySQL\MySQL Server 8.4\bin"
mysqld --install MySQL84初始化 MySQL 服务(生成临时 root 密码):
powershell
mysqld --initialize --console输出中会显示临时密码,例如:
A temporary password is generated for root@localhost: jnhaG(C-C2fc
启动 MySQL 服务:
powershell
net start MySQL842. 登录 MySQL
powershell
mysql -u root -p输入临时密码登录后,建议修改 root 密码:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';检查数据库列表:
sql
SHOW DATABASES;3. 创建 poetry 数据库和表
sql
CREATE DATABASE poetry CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE poetry;
CREATE TABLE poetry (
id INT NOT NULL AUTO_INCREMENT,
title CHAR(200),
dynasty CHAR(50),
author CHAR(100),
content TEXT,
PRIMARY KEY (id)
);⚠️ 使用
utf8mb4以支持古诗中的生僻字。
4. 检查 secure_file_priv 设置
sql
SHOW VARIABLES LIKE '%secure_file_priv%';- 返回
NULL→ 不限制导入目录 - 可直接从任意路径导入 CSV 文件
5. 导入 poetry.csv 数据
5.1 确认 local_infile 是否开启
sql
SHOW VARIABLES LIKE 'local_infile';- 返回
ON→ 可直接使用 - 返回
OFF→ 执行:
sql
SET GLOBAL local_infile = 1;5.2 导入数据
假设 poetry.csv 位于 D:\forfun\Poetry\poetry.csv:
sql
USE poetry;
LOAD DATA LOCAL INFILE 'D:\\forfun\\Poetry\\poetry.csv'
INTO TABLE poetry
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(title, dynasty, author, content);导入成功示例:
Query OK, 853385 rows affected (8.12 sec)如果重复导入会出现
1706770行,需注意避免重复执行。
6. 验证数据
6.1 查询总行数
sql
SELECT COUNT(*) FROM poetry;应返回:
8533856.2 查询示例
sql
-- 搜索南昌相关诗句
SELECT * FROM poetry
WHERE content LIKE '%南昌%' OR title LIKE '%南昌%'
LIMIT 20;
-- 搜索滕王阁相关诗句
SELECT * FROM poetry
WHERE content LIKE '%滕王阁%' OR title LIKE '%滕王阁%';7. 可选优化:索引
为了在 App 中快速搜索,可增加索引:
sql
ALTER TABLE poetry ADD INDEX idx_title(title);
ALTER TABLE poetry ADD INDEX idx_author(author);
ALTER TABLE poetry ADD FULLTEXT INDEX idx_content(content);FULLTEXT索引用于全文搜索,提高查询效率
8. 总结
- MySQL 8.4 Winget 安装默认未注册服务,需要手动
mysqld --install - 初始化会生成临时 root 密码
- secure_file_priv = NULL → 可以从任意路径导入 CSV
- 使用
LOAD DATA LOCAL INFILE导入大数据集最稳定 - 导入完成后即可验证总行数和内容
- 建议加索引以提升搜索性能