Windows 11 上 MySQL 8.0 已经作为服务运行,导入 .sql 本质上就是用 mysql 客户端连上服务、把 SQL 文件喂进去。下面按“确认服务→建库→导入→排错”走一遍。
1. 确认 MySQL 服务在跑
- 服务名通常是
MySQL80(安装版)或MySQL,可在“服务”里看,或 CMD/PowerShell 查:sc query MySQL80
- 没启动就起:
如果提示服务名不对,打开net start MySQL80
services.msc看实际名称,换成你的,例如net start MySQL。 - 默认安装路径一般是:
配置文件常在C:\Program Files\MySQL\MySQL Server 8.0\bin
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini(ProgramData 是隐藏目录)。
如果直接输
mysql提示“不是内部或外部命令”,要么进 bin 目录,要么把 bin 加到系统 PATH,要么用全路径。
2. 方式一:命令行一键重定向(最常用)
先确保目标库存在。如果 sql 文件里已经包含 CREATE DATABASE 和 USE,可跳过建库。
建库(示例用 utf8mb4):
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" -u root -p -e "CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
导入:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" -u root -p --default-character-set=utf8mb4 mydb < D:\backup\mydb.sql
执行后会提示输入密码。如果 MySQL 不在本机默认端口,加 -h127.0.0.1 -P3306。
如果已经把 bin 加到 PATH,直接写:
mysql -u root -p --default-character-set=utf8mb4 mydb < D:\backup\mydb.sql
3. 方式二:先登录再用 source(适合分步操作)
CMD/PowerShell:
mysql -u root -p
进到 mysql 提示符后:
CREATE DATABASE IF NOT EXISTS mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;USE mydb;SOURCE D:/backup/mydb.sql;
注意 Windows 路径在 source 里用正斜杠或双反斜杠,别用单反斜杠;路径尽量别带中文/空格,带空格整段加引号。
PowerShell 里 < 重定向也能用,但有时策略/引号更麻烦,交互 source 更稳。
4. 大文件 / 提速参数
mysql -u root -p --default-character-set=utf8mb4 --max-allowed-packet=512M --net-buffer-length=16M mydb < D:\backup\big.sql
sql 文件开头可加(导入完再改回1):
SET foreign_key_checks=0;SET unique_checks=0;SET autocommit=0;-- 导入内容COMMIT;SET foreign_key_checks=1;SET unique_checks=1;
5. 常见报错处理
- ‘mysql’ 不是内部或外部命令:bin 没进 PATH,用全路径或
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"。 - Access denied:当前用户没权限,用 root 或给账号授权
CREATE/INSERT/DROP/ALTER;密码错也会报这个。 - Unknown database:先建库再导入,或者确认 sql 里是否有
CREATE DATABASE+USE。 - Unknown collation: utf8mb4_0900_ai_ci:这个目标如果是 MySQL 8.0 一般不会出现;若是把 8.0 导出的 sql 灌到 5.7/低版本,需要把文件里的
utf8mb4_0900_ai_ci批量替换成utf8mb4_unicode_ci等。 - 服务连不上 / Can’t connect:先看服务是否启动、
netstat -ano | findstr 3306看端口,服务属性里可查实际 my.ini 与端口。 - 中文乱码:客户端和服务端都用 utf8mb4,导入加
--default-character-set=utf8mb4,sql 文件保存为 UTF-8 无 BOM。
