python - mysql,如何备份数据到另一台机器

标签 python mysql pandas

我在server_1(操作系统是Windows)有一个很大的mysql数据库,我想把server_1中的所有数据复制到server_2(操作系统是Centos)。我尝试将 server_1 中的数据导出到 sql 文件并在 server_2 中获取 sql 文件,但是这会花费很多时间。

我觉得写代码(Pandas)复制数据是一个选择,但是数据很大而且server_1和server_2不在同一个局域网内(他们有私有(private)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 步:停止 taget 机器上的 mysql 服务,备份存在于您的 mysql 数据目录中的所有文件,并从此处清除。

Step4:将备份的mysql目录下的所有数据复制到目标mysql目录。

Step5:通过以下命令更改mysql目录下这些复制文件的权限。

$ chown -R mysql.mysql /var/lib/mysql

注意:假设你的数据目录是/var/lib/mysql

第六步:启动你的mysql服务。

注意:可能您在 mysql 日志文件中收到的警告很少,但 mysql 应该可以正常工作。

关于python - mysql,如何备份数据到另一台机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36129452/

相关文章:

python - 为什么 Python 字符串连接适用于俄语文本,但 string.format() 不起作用

python - 关闭服务器后尝试运行服务器时,Django python已停止工作

mysql - 使用 play2 框架运行 JUnit 测试时出现 mysql 连接问题

mysql - 我应该使用 sql COUNT(*) 还是使用 SELECT 来获取行并稍后计算行数

mysql - 为什么我的 MySQL MATCH() AGAINST() 查询因 LEFT JOIN 数据库中的列而失败?

python - 使用列表反转顺序后在 python 中重建字典

python - 使用 CSV 编写器在分隔符后插入空格

python - 合并行 pandas 数据框

pandas - folium choropleth 和 geojson 未在 jupyter 中渲染

python - 根据条件计算 Dataframe 中的正负连续元素