我在server_1(OS is Windows
)中有一个大型mysql数据库,并且我想将server_1中的所有数据复制到server_2(OS is Centos
)。我尝试将server_1中的数据导出到sql文件并在server_2中导出该sql文件,但是这要花费很多时间。
我认为编写代码(Pandas
)复制数据是一种选择,但是数据非常大,并且server_1和server_2不在sam LAN(它们具有私有IP)中,考虑网络拥塞,也许这不是一个好选择。
帮助您提出一个好的解决方案。谢谢!
从命令行通过mysqldump从Windows计算机上进行备份:
mysqldump -R --triggers --events -uroot -p<root_pass> --all-databases > c:/backup/mybackup.sql
现在将此备份移至centos机器上,您可以使用winscp的帮助(如果需要,可以存档):
现在,通过以下命令还原数据:
mysql -uroot -p<root_pass> < /backup_path/mybackup.sql
更新1
单数据库备份:
mysqldump -R -uroot -proot_pass db1 > c:/backup/db1.sql
多数据库备份:
mysqldump -R -uroot -proot_pass -B db1 db2 db3 > c:/backup/db1_2_3.sql
单/多表备份:
mysqldump -uroot -proot_pass db1 tbl1 tbl2 tbl3 > c:/backup/db1_tbl_1_2_3.sql
此外,由于您的数据库大小为1 TB,即使使用mysqldump也要花费一些时间,因此即使不是一个干净的过程,您也可以简单地复制二进制文件,但是您可以使用它。
步骤1:停止您的mysql服务。
步骤2:归档您的mysql数据目录,然后移至目标计算机。
步骤3:在标记机上停止mysql服务,并备份mysql数据目录中存在的所有文件,然后从此处进行清理。
步骤4:将mysql目录下的所有数据从备份复制到目标mysql目录。
步骤5:通过以下命令更改这些复制文件在mysql目录下的权限。
$ chown -R mysql.mysql /var/lib/mysql
注意:假设您的数据目录是/ var / lib / mysql
步骤6:启动您的mysql服务。
注意:可能是您在mysql日志文件中收到的警告很少,但是mysql应该可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句