换电脑了,想把之前电脑 mysql 的表和数据都迁移到新电脑(都是 windows),看网上的方案都挺麻烦,请教一下大家有没有什么比较简单的迁移方法,因为表不是很多,如果很复杂的话可以直接重建表了
|  |      1F281M6Dh8DXpD1g2      2022-05-07 01:12:27 +08:00 via iPhone  2 Mysqldump 呗 | 
|  |      2eason1874      2022-05-07 01:15:01 +08:00  3 shell 运行 mysqldump -u root --all-databases > /home/databases.sql 压缩,迁移到新电脑,解压缩,然后登录 mysql mysqldump -u root source /home/databases.sql | 
|  |      3irisdev OP ok 的,谢谢上面两个老哥,备份完了 | 
|  |      4vibbow      2022-05-07 03:03:45 +08:00  1 直接复制粘贴 mysql 数据目录就行呀 | 
|  |      7C02TobNClov1Dz56      2022-05-07 09:36:25 +08:00 | 
|      8446ENzu91KZ73A33      2022-05-07 09:40:38 +08:00 亲测,直接复制数据目录就行 | 
|      9CheckMySoul      2022-05-07 10:11:04 +08:00 1. 备份恢复:mysqldump 导出成 sql 文件导入到新数据库,或者通过 xtrabackup 备份再恢复(推荐) 2. 关旧的数据库,数据库文件和配置文件复制到新电脑再启动 | 
|  |      10crazytudou      2022-05-07 10:14:37 +08:00 直接把目录复制进去,然后添加到服务,启动,完事 | 
|      11cloverzrg2      2022-05-07 11:05:09 +08:00 用 docker ,才不管你的是什么东西,直接打包过去就行了 😆 | 
|  |      13irisdev OP 就是 2l 老哥说的(不过在 windows 上稍微有点不一样) 进入 mysql 安装 bin 目录下,运行 mysqlddump -u root -p -all-databases > /f/beifen.sql 然后就可以在 f 盘下看到 beifen.sql 了 之后我也没在新电脑还原了,直接打开新电脑的 mysql ,把 beifen.sql 运行一遍就好了(这里可以用图形化工具,我用的 sqllog) @chengyiqun | 
|  |      15C02TobNClov1Dz56      2022-05-07 11:49:50 +08:00 @irisdev emmmm 我自己用的 mysql 是精简版, 没有 mysqldump ... 其实 navicat 这种, 用导出导入 csv 也挺不错的. csv txt 不用担心爆内存, 导出其他的可能会爆内存. | 
|  |      16irisdev OP @chengyiqun 学到了 | 
|      17julyclyde      2022-05-07 12:01:48 +08:00 @cloverzrg2 建议还是加强学习 | 
|      18julyclyde      2022-05-07 12:02:20 +08:00 @chengyiqun 为什么 csv 不会爆内存? | 
|  |      19C02TobNClov1Dz56      2022-05-07 12:06:21 +08:00 @julyclyde csv 和 txt 都是纯文本文件. 一条记录写一行.  我猜, 可能是用的流式查询, 然后写文件直接通过有缓冲的 writer, 直接在文本后面追加, 这样的话, 数据量再大都不会很耗费内存, 最多就是花时间多. | 
|      20julyclyde      2022-05-07 12:07:47 +08:00 @chengyiqun mysqldump 产生的 insert 语句也可以一条记录一行的 禁用 extended insert 就行了 | 
|  |      21C02TobNClov1Dz56      2022-05-07 12:13:38 +08:00 @julyclyde 学习了 | 
|      22hefish      2022-05-07 12:15:33 +08:00 别说是 mysql , 我 oracle 都是直接复制数据库文件的。哈哈。 | 
|  |      26eason1874      2022-05-07 14:56:19 +08:00 @irisdev  mysqldump 导出的就是 SQL 语句,source 是执行 sql 文本文件里的全部语句。mysqldump 后直接复制字符串去执行,效果一样的。压缩是为了减小传输体积,不过你量小,压缩反而麻烦了,这个步骤确实多余,可以跳过 | 
|      27mobbdeep      2022-05-07 15:02:08 +08:00 @eason1874 理解,新机器没数据库的话应该要先 create database 再 source,不知道是不是我云了 | 
|  |      28eason1874      2022-05-07 15:13:15 +08:00 @mobbdeep  如果你只导出表格,导入时就得先有数据库。导出 --all-databases 就不用,导出结果会包含 CREATE DATABASE | 
|      29stevefan1999      2022-05-07 15:51:21 +08:00 via Android 🐶弄個集群然後把么遷移的機器加進去 等他同步完畢了把原先的 master down 了再 promote 新加的到 master | 
|      30stevefan1999      2022-05-07 15:52:23 +08:00 via Android 這樣做的好處是在線遷移可以無縫遷移 缺點是複雜 | 
|      31asmile1993      2022-05-07 16:00:11 +08:00 mysqlddump -u root -p -all-databases > /f/beifen.sql ,这种备份方式获取到的是非一致性备份,不可用的,恢复之后,数据很可能对不上,要加上--master-data=2 和 --single-transaction 这两种方式。 mysqldump --master-data=2 --single-transaction -A >db_full_backup_`date +%Y%m%d`.sql | 
|  |      32qwerthhusn      2022-05-07 16:02:32 +08:00 @chengyiqun mysqldump mysql 这些是客户端, | 
|  |      33encro      2022-05-07 16:25:40 +08:00 navicat ,图形界面,数据库同步。数据量不大的话。 | 
|  |      34xuanbg      2022-05-07 16:47:00 +08:00 直接复制文件过去就可以 | 
|      35smallYear      2022-05-07 17:00:39 +08:00 冷备份,直接复制目录就可以 | 
|      36struggle001      2022-05-07 17:25:18 +08:00 @smallYear 冷备份需要拷贝 mysql 目录,还必须版本一直,最初的 innodb 的类型的在 ibdata1 里,如果不拷贝 ibdata1 文件,那就狒狒了,建议还是 mysqldump 出来之后再导入最好。 | 
|      37bthulu      2022-05-07 18:03:53 +08:00 哪用这么麻烦, 直接 navicat 数据传输就行了 | 
|  |      38aaa5838769      2022-05-07 18:07:25 +08:00 Mysqldump 是最简单的 | 
|  |      39keepeye      2022-05-07 18:42:19 +08:00 冷迁移方式很多,最简单的就是数据库版本一致直接拷贝 data 目录。。热迁移需要借助一些工具了,大概就是搭建一个主从,然后 slave 切换到 master | 
|  |      40bruce0      2022-05-07 19:03:56 +08:00 @vibbow 我有一次升级 mysql, 好像是从 5.5 升到 5.7, 先备份的 sql, 然后导不进去,报错. 最后用的复制目录, 直接启动, 原来的数据都在 0.0 | 
|      41aaniao002      2022-05-07 19:32:40 +08:00 via Android 为什么不试试 var 下的数据库文件直接粘过去? | 
|      42qile1      2022-05-07 19:45:59 +08:00 via Android @hefish 能不能给说说怎么复制文件,我用数据泵备份,还原一直不成功,说是表空间问题,复制文件该怎么操作 | 
|  |      43jolanyu      2022-05-07 20:24:25 +08:00 kettle | 
|  |      44xiangyuecn      2022-05-07 20:49:20 +08:00 楼上有人不怕丢数据就用 navicat mysqldump 安全可靠 | 
|      45hefish      2022-05-07 21:20:54 +08:00 @qile1 我的 oracle 跑在 zfs 的分区上,所以先给 zfs 分区做一个快照,然后把这个快照的内容复制出来就可以了。 只要注意机器名一样就能把服务出来。 在负载不重的机器上,zfs 的 snapshot95%以上的概率能成功。 | 
|  |      46flynaj      2022-05-08 20:08:37 +08:00 via Android 版本相同的话直接复制 data 目录就行 |