跨操作系统恢复必须用mysqldump导出SQL文本,禁用物理文件复制;需排除mysql系统库、适配认证插件、手动建库并指定collation,且须验证GTID、字符集等隐性兼容项。
Windows → Linux 或 macOS → Linux 恢复时,直接复制 /var/lib/mysql 或 data/ 目录 100% 失败。错误如 Tablespace is missing for table 或 Can't find file: './db/t1.frm' 都是典型症状——NTFS 和 ext4 对文件权限、大小写敏感性、inode 结构处理完全不同,InnoDB 的 .ibd 文件根本不可移植。
唯一可行路径:只用 mysqldump 导出的 SQL 文本。它不依赖字节序、页格式或文件系统,只要目标 MySQL 实例能执行标准 SQL(5.7/8.0/甚至 MariaDB),就能还原。
--all-databases 直接导出全部,尤其要排除 mysql 系统库(加 --ignore-database=mysql)caching_sha2_password,导入到 5.7 会报错 Unknown authentication plugin 'caching_sha2_password';需在导出时加 --default-auth=mysql_native_password
直接 mysql -u root -p mydb 很可能失败——因为 mysqldump --databases 生成的 SQL 里虽含 CREATE DATABASE,但默认用的是源库字符集和排序规则,而 8.0 和 5.7 默认 collation 不同:utf8mb4_0900_ai_ci vs utf8mb4_general_ci。目标库若没提前建好,或 collation 不匹配,后续表创建会乱码或报错。
安全做法是分两步:
DROP DATABASE IF EXISTS mydb; CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;(注意:collation 必须与源库一致,查 SHOW CREATE DATABASE mydb; 确认)mysql -u root -p mydb
DROP DATABASE,且你不想删旧库,导出时加 --skip-dump-date --no-create-db,或手动删掉 SQL 文件开头的 DROP DATABASE 行大库导入卡住、报 Duplicate entry 或 Incorrect string value?不是数据问题,而是默认行为没调对。
SET UNIQUE_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;(可写进 SQL 文件头部,或用 mysql -e "SET ..." -e "source backup.sql")mysql -u root -p --default-character-set=utf8mb4 mydb ,否则客户端用 latin1 连接,utf8mb4 数据会变乱码
--set-gtid-purged=OFF,或导入前执行 SET @@GLOBAL.GTID_PURGED='';
mysqldump 在 Windows 上默认用 CRLF(rn),Linux 解析 SQL 一般没问题,但极少数情况(比如含特殊注释或长文本字段)会导致语法解析异常,表现为 ERROR 1064 卡在某一行。
稳妥做法:
unix2dos / dos2unix 转换(Linux 端运行:dos2unix backup.sql)--result-file=backup.sql(比重定向 > 更可靠,自动处理换行)/*!40101 SET @OLD_CHARACTER_SET_CLIENT= */ ——没有说明导出未识别版本,需补 --set-gtid-purged=OFF 或 --skip-extended-insert 再试跨 OS 恢复真正难的不是命令本身,而是那些藏在字符集、collation、GTID、换行符里的隐性不一致。每一步都得验证,不能假设“导出能跑,导入就一定成”。
Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)