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