转载请注明出处,如有问题请联系我们! 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 导入导出的重点是备份、字符集、表前缀和验证。真正安全的流程是:先备份,再建库,再导入,再检查表数量和核心数据。只要这几个环节稳定,源码网站迁移成功率会高很多。

标签云