如何备份远程 MySQL 数据到本地

《如何备份远程 MySQL 数据到本地》 如何备份远程 MySQL 数据到本地

如何备份远程 MySQL 数据到本地?

对于远程的 MySQL 数据库,如何定期将数据备份到本地呢?对于需要远程备份数据的童鞋来说我想这个是经常需要用到的。

1、首先远程数据库必须支撑远程连接,提供有供远程连接的IP或者域名。

假设远程数据库域名为 mysql.example.com ,数据库登录账号为 username , 账号密码为 passwd 数据库名称为 database1 。 通过 mysqldump 命令来解决远程备份,要在本机试用mysqldump命令,首先你本地得安装MySQL。 Linux系统安装 MySQL 教程可以参考以下教程:

2、编写导出数据命令

mysqldump -h 远程服务器IP或域名 -u 远端数据库账号 -p’远端数据库密码’ –default-character-set=utf8 数据库名字 > /tmp/database_db.sql

MySQL 安装后,mysqldump 命令默认路径在 /usr/local/mysql/bin/

键入以下命令:

cd /usr/local/mysql/bin/
./mysqldump -h mysql.example.com -u username -p'passwd' --default-character-set=utf8 database1 > /tmp/database_db.sql

执行完成后,你会发现在/tmp目录下生成一个 database_db.sql 文件。

3、定时备份导出

linux 系统下很容易设定定时人员,通过 crontab 设定定时任务,例如设定每天凌晨1点10分进行数据备份到本地。

打开终端,输入crontab -e 打开 crontab 编辑窗口。

键入以下命令:

20 12 * * * /usr/local/mysql/bin/mysqldump -h mysql.example.com -u username -p'passwd' --default-character-set=utf8 database1 > /tmp/database_db.sql

定时每天的12点20执行,至此,定时任务完成。

这样的定时任务有个问题,就是每次生成的文件会覆盖上次生成的备份数据文件,如何解决这个问题?

可以通过对生成文件名称加上时间戳的方式来解决,例如 database_db_201801010101.sql

date +%Y%m%d%H%M%S

以上命令可以输出,类似如下:

20181121172635

在脚本名称中增加 date +%Y%m%d%H%M%S,这样每次生成的脚本名称就会追加上时间戳。

/usr/local/mysql/bin/mysqldump -h mysql.example.com -u username -p'passwd' --default-character-set=utf8 database1 > /tmp/database_db_`date +\%Y\%m\%d\%H\%M\%S`.sql

ps:注意如果直接“%”前需要加“\”进行转义。
执行完成后,你会发现在/tmp目录下面会有类似如下的文件生成:

database_db_ 20181121172635.sql

写在最后

如何备份远程 MySQL 数据到本地的方式以上内容介绍完成,主要涉及到知识点有以下几点:

  • 1、本地本分环境安装 MySQL。
  • 2、使用 mysqldump 命令进行备份。
  • 3、使用 crontab 命令实现定时备份。
  • 4、使用反单引号(“) 执行日期命令获取时间戳。

如果您有任何疑问,请在下面留言

    原文作者:等会再说
    原文地址: https://www.jianshu.com/p/356855a4f15d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞