You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10无法启动,如何从Ubuntu备份Windows的phpMyAdmin数据库(.SQL)

如何在Ubuntu中备份Windows分区里的MySQL数据库

没问题,你完全可以在Ubuntu中搞定Windows下的MySQL备份,我给你分两种场景来提供靠谱的操作方案:

第一步:先挂载Windows系统分区

首先你得让Ubuntu能访问Windows的文件系统:

  • 最简单的方式:打开Ubuntu的文件管理器,找到你的Windows分区(一般是NTFS格式,名称可能是「Windows」或者磁盘盘符对应的名字),点击它就能自动挂载,挂载后的路径通常是/media/[你的Ubuntu用户名]/[分区名称]。
  • 如果自动挂载失败(比如提示Windows处于休眠状态),用命令行挂载:
    1. 先查看Windows分区的设备名:sudo fdisk -l,找到标注为NTFS、对应系统盘的条目(比如/dev/sda2)。
    2. 创建挂载目录:sudo mkdir /mnt/windows
    3. 强制挂载并删除休眠文件(注意:这会清除Windows的休眠状态,下次启动Windows会正常重启,不会保留休眠时的内存状态):sudo mount -t ntfs-3g -o remove_hiberfile /dev/sda2 /mnt/windows

方案一:从Windows的MySQL数据文件导出SQL备份

Windows下的MySQL数据默认存在C:\ProgramData\MySQL\MySQL Server [版本号]\Data(ProgramData是隐藏文件夹,Ubuntu里按Ctrl+H就能显示),挂载后对应路径是/media/[你的用户名]/[分区名]/ProgramData/MySQL/MySQL Server [版本号]/Data。

方法1:临时在Ubuntu的MySQL中加载Windows数据(最稳妥,支持InnoDB)

这是最可靠的方式,不管是MyISAM还是InnoDB表都能正常导出:

  1. 确保Ubuntu安装了MySQL:如果没装,先运行sudo apt update && sudo apt install mysql-server
  2. 停止Ubuntu本地的MySQL服务:sudo systemctl stop mysql
  3. 备份Ubuntu本地的MySQL数据(避免覆盖):sudo mv /var/lib/mysql /var/lib/mysql_backup
  4. 创建新的空数据目录并设置正确权限:sudo mkdir /var/lib/mysql && sudo chown -R mysql:mysql /var/lib/mysql
  5. 复制Windows的MySQL数据文件到这个目录:sudo cp -r /media/[你的用户名]/[分区名]/ProgramData/MySQL/MySQL Server [版本号]/Data/* /var/lib/mysql/
  6. 再次确认权限:sudo chown -R mysql:mysql /var/lib/mysql
  7. 启动MySQL服务:sudo systemctl start mysql
  8. 现在就可以用mysqldump导出SQL了:
    • 导出单个数据库:mysqldump -u root -p 你的数据库名 > 备份文件名.sql
    • 导出所有数据库:mysqldump -u root -p --all-databases > all_windows_databases.sql

    提示输入密码时,用的是Windows下MySQL的root密码,不是Ubuntu的MySQL密码。

  9. 导出完成后,记得恢复Ubuntu本地的MySQL数据:
    • 停止服务:sudo systemctl stop mysql
    • 删除临时数据:sudo rm -rf /var/lib/mysql
    • 恢复备份:sudo mv /var/lib/mysql_backup /var/lib/mysql
    • 启动服务:sudo systemctl start mysql

方法2:用工具直接读取数据文件(适合不想折腾本地MySQL的情况)

如果你的数据库都是MyISAM引擎,可以用myisamdump直接导出数据:

  • 安装工具:sudo apt install mysql-client
  • 导出单个MyISAM表:myisamdump /media/[你的用户名]/[分区名]/ProgramData/MySQL/MySQL Server [版本号]/Data/数据库名/表名.MYI > 表名.sql

注意:InnoDB表无法用这种方法直接导出,必须用上面的方法加载到MySQL服务中才行。


方案二:直接找到phpMyAdmin的现成SQL备份

如果你之前用phpMyAdmin导出过备份,直接找现成的文件更简单:

  1. 用户下载的备份:默认存在Windows的下载文件夹,路径是C:\Users\[你的Windows用户名]\Downloads,挂载后对应/media/[你的用户名]/[分区名]/Users/[你的Windows用户名]/Downloads,直接在这里找.sql格式的文件即可。
  2. 服务器端存储的备份:如果是XAMPP/WAMP这类集成环境,phpMyAdmin可能会把备份存在服务器目录,比如XAMPP的C:\xampp\phpMyAdmin\save或者C:\xampp\mysql\data(后者就是MySQL的数据目录,和方案一的路径一致)。
  3. 快速搜索所有SQL文件:用命令行在整个Windows分区搜索:sudo find /media/[你的用户名]/[分区名] -name "*.sql",找到后复制到Ubuntu的个人目录即可。

一些注意事项

  • 如果Windows下的MySQL版本和Ubuntu的差异较大(比如一个是5.7,一个是8.0),可能出现兼容性问题。这时候建议用Docker启动一个和Windows版本相同的MySQL容器,把数据目录挂载进去再导出,避免版本冲突。
  • 复制MySQL数据文件时,一定要把ibdata1、ib_logfile0、ib_logfile1这些InnoDB系统文件一起复制,否则InnoDB表无法正常加载。

内容的提问来源于stack exchange,提问作者Razin Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:16:41