如何从文件目录导出Xampp MySQL数据表实现重装时的数据迁移
XAMPP MySQL无法连接及数据迁移解决方案
你遇到的报错截图如下:
非重装快速修复(可先尝试)
如果仅出现数据库连接失败,不需要直接卸载重装,可以先排查两个高频故障点:
- 检查3306端口是否被其他程序(本机独立安装的MySQL、VMware、Hyper-V等)占用,找到对应进程关闭后重启MySQL服务即可
- 打开
xampp/mysql/bin/my.ini配置文件,将MySQL端口修改为3307等未被占用的端口,保存后重启MySQL,同步修改phpMyAdmin配置中的连接端口即可恢复访问
必须重装时的完整数据迁移方案
你之前复制文件只迁移了表结构、丢失数据,是因为仅复制了单库的文件夹,没有同步迁移共享表空间、redo log等核心文件,按以下步骤操作可以完整迁移所有数据:
- 操作前备份
先彻底停止当前XAMPP的Apache、MySQL服务,避免文件被占用导致备份损坏;找到原XAMPP的xampp/mysql/data目录,将整个data文件夹完整复制备份到非系统盘的独立目录中,备份完成后再执行后续操作 - 新环境初始化
安装和旧版本完全一致的XAMPP(版本差异过大可能导致数据不兼容),安装完成后启动一次MySQL服务再停止,确认新XAMPP运行环境正常 - 替换数据目录
打开新安装的XAMPP的xampp/mysql目录,将自带的data文件夹重命名为data_old留作备份,再把之前备份的完整data文件夹粘贴到当前路径下 - 版本适配(非必须)
如果新旧XAMPP的MySQL大版本不一致(比如原版本是5.7、新版本是8.0),先不要启动MySQL,进入xampp/mysql/bin目录打开终端,执行mysql_upgrade -u root -p,按提示输入MySQL root密码完成版本适配 - 验证数据
启动新XAMPP的MySQL服务,打开phpMyAdmin检查所有表的结构、数据、功能是否正常,确认无误后再删除data_old文件夹和旧XAMPP的残留文件
备用迁移方案
如果上述文件复制方案仍有异常,可通过命令行导出完整数据:
如果旧XAMPP的MySQL服务可以临时启动,进入xampp/mysql/bin目录打开终端,执行mysqldump -u root -p 数据库名 > D:/backup/数据库名.sql,导出的sql文件在重装完成后,执行mysql -u root -p 数据库名 < D:/backup/数据库名.sql即可完成导入,兼容性比文件复制更高。
如果旧服务完全无法启动,可以单独下载对应版本的绿色版MySQL,将备份的data文件夹放入绿色版MySQL目录启动后,再用上述mysqldump命令导出数据即可。
内容的提问来源于stack exchange,提问作者zak Smiths
相关产品推荐
相关产品推荐

