能用 phpmyadmin 导入,但必须先选库、调编码、看大小;超 2mb 就别硬扛,改用 mysql 命令行更稳。导入前须先点击左侧目标数据库,确保顶部显示库名再点 import;字符集须统一为 utf-8 without bom、phpmyadmin 中选 utf8mb4、表排序规则设为 utf8mb4_unicode_ci;大文件建议直接命令行导入。
直接说结论:能用 phpmyadmin 导入,但必须先选库、调编码、看大小;超 2mb 就别硬扛,改用 mysql 命令行更稳。
导入前必须先选中目标数据库
常见错误 #1046 - No database selected 不是 bug,是你没点左侧数据库名就点了「导入」。phpMyAdmin 不会自动创建库,也不会猜你要往哪导。
- 操作顺序不能错:先在左侧面板点击目标数据库(比如
myapp_db),确认顶部导航显示myapp_db » - 再点顶部的
Import标签页,此时页面右上角才真正“绑定”了目标库 - 如果 SQL 文件开头没有
USE `xxx`;或CREATE DATABASE,又没手动选库,必报这个错
字符集选错 = 中文全变问号
乱码不是文件坏了,是三层编码没对齐:SQL 文件本身、phpMyAdmin 解析设置、目标表字段默认字符集,三者缺一不可。
- 用 VS Code 或 Sublime 打开 .sql 文件,确认保存为
UTF-8 without BOM(不是 UTF-8 with BOM,也不是 GBK) - 在 phpMyAdmin 导入页底部,“
Character set of the file”下拉框必须选utf8mb4(不是utf8) - 导入前,进该数据库的
Operations页,把Collation改成utf8mb4_unicode_ci
大文件(>2MB)上传失败?别调 php.ini,直接切命令行
页面空白、script timeout、Lost connection to server——这些都不是前端问题,是 MySQL 服务端拒绝接收大数据包,改配置不重启等于白改。
- 优先跳过 phpMyAdmin:终端执行
mysql -u root -p database_name - 确保
mysql命令可用(XAMPP 用户路径通常是C:\xampp\mysql\bin或/Applications/XAMPP/xamppfiles/bin) - 若提示
ERROR 1064,大概率是 SQL 文件里有生产环境专用语句(如DATA DIRECTORY、localhost:3306),需用文本编辑器手动删掉或注释 - 数据库不存在?先建库:
mysql -u root -p -e"CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
导入后数据异常?检查 MySQL 严格模式和时区
即使导入成功,也可能出现日期截断、默认值被忽略、空字符串转 NULL 等隐形问题,根源常在 MySQL 的运行时行为。
- 登录 MySQL 后执行
SELECT @@sql_mode;,如果返回包含STRICT_TRANS_TABLES或STRICT_ALL_TABLES,说明启用了严格模式——某些宽松插入会被拒绝 - 检查时区:
SELECT @@time_zone;,本地开发建议设为SYSTEM或显式指定+08:00,避免时间字段偏移 - 导入前可临时关闭严格模式(仅限开发环境):
SET sql_mode = '';,但不要写进 SQL 文件里
最易被忽略的是:改完 my.cnf 和 php.ini 后不重启服务,所有配置都无效;还有人把 utf8 和 utf8mb4 当成一回事,结果 emoji 存不进去还查不出原因。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











