转载请注明出处,如有问题请联系我们! MySQL 数据库导入导出教程:备份、恢复、迁移都适用
MySQL 数据库导入导出教程:备份、恢复、迁移都适用 这篇文章适合需要迁移源码网站、恢复备份、批量导入文章、换服务器的站长。很多人以为数据库导入导出就是点一下 phpMyAdmin,其实真正上线时更推荐使用命令行,因为稳定、速度快,也更容易看到错误。
一、什么时候需要导入导出数据库
- 网站从旧服务器迁移到新服务器。
- 源码站换域名、换目录、重新搭建环境。
- 后台误删数据,需要恢复备份。
- 批量导入文章、分类、会员数据。
- 本地测试站同步到线上服务器。
二、导出数据库:mysqldump 备份
最常用的备份命令是 mysqldump。假设数据库名是 yueshen,可以这样导出:
mysqldump -u root -p yueshen > /root/yueshen_backup.sql
如果只想备份某一张表,比如文章表:
mysqldump -u root -p yueshen jz_article > /root/jz_article_backup.sql
如果数据比较大,建议压缩保存:
mysqldump -u root -p yueshen | gzip > /root/yueshen_backup.sql.gz
三、导入数据库:先建库再导入
导入前一定要先创建数据库,并指定字符集。源码网站建议统一使用 utf8mb4,避免中文、表情、特殊符号乱码。
mysql -u root -p
CREATE DATABASE yueshen DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;
mysql -u root -p yueshen < /root/yueshen_backup.sql
四、常见错误一:No database selected
这个错误表示你执行 SQL 时没有选择数据库。比如你进入 MySQL 后直接执行 SELECT 或导入 SQL,就可能出现这个问题。
USE yueshen;
SHOW TABLES;
如果用命令行导入,正确格式是:
mysql -u root -p 数据库名 < 文件名.sql
五、常见错误二:中文乱码
中文乱码通常和三个地方有关:数据库字符集、表字符集、SQL 文件编码。建议检查:
SHOW VARIABLES LIKE "character_set%";
SHOW CREATE TABLE jz_article;
如果旧库是 utf8,新库是 utf8mb4,一般问题不大;如果 SQL 文件本身编码乱了,就需要重新从源库导出。
六、常见错误三:表前缀不一致
很多 CMS 有表前缀,例如 jz_article、jz_member。如果配置文件里的表前缀和数据库实际表名不一致,前台就会显示空白或报表不存在。
SHOW TABLES LIKE "jz_%";
SHOW TABLES LIKE "%article%";
迁移后,如果首页没有内容,先看文章表和分类表是否存在,再检查配置文件里的 DB_PREFIX。
七、大文件导入建议
大 SQL 文件不要优先用 phpMyAdmin 上传,因为容易受上传大小、执行时间限制影响。命令行更稳定:
screen -S importdb
mysql -u root -p yueshen < big_backup.sql
如果是压缩包:
gunzip -c yueshen_backup.sql.gz | mysql -u root -p yueshen
八、导入后验证清单
SELECT COUNT(*) FROM jz_article;
SELECT COUNT(*) FROM jz_classtype;
SELECT COUNT(*) FROM jz_member;
SELECT id,title,tid FROM jz_article ORDER BY id DESC LIMIT 10;
不要只看首页是否打开。首页可能有缓存,数据库是否完整要直接查表。
九、总结
MySQL 导入导出的重点是备份、字符集、表前缀和验证。真正安全的流程是:先备份,再建库,再导入,再检查表数量和核心数据。只要这几个环节稳定,源码网站迁移成功率会高很多。
