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

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

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

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` 编辑窗口。

键入以下命令:

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

至此,定时任务完成。

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

可以通过对生成文件名称加上时间戳的方式来解决,例如 `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

执行完成后,你会发现在/tmp目录下面会有类似如下的文件生成:

database_db_ 20181121172635.sql

写在最后

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

2、使用 mysqldump 命令进行备份。

3、使用 crontab 命令实现定时备份。

4、使用反单引号(``) 执行日期命令获取时间戳。

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

Logo

一站式 AI 云服务平台

更多推荐