实现mysql数据库自动备份

本次目标

mysql实现自动备份

实现步骤

一、测试导出

1、执行命令
其中root为用户名,user 为数据库名

 [root@localhost mysql]#mysqldump -u root -p 数据库名 > /home/mysql/test.sql

命令解析:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

2、提示无法识别mysqldump ,执行如下命令即可解决

[root@localhost mysql]#ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
[root@localhost mysql]#ln -fs /usr/local/mysql/bin/mysql /usr/bin

3、再次执行步骤1的命令
在password后面输入root用户的密码,敲下回车键即可导出

[root@localhost mysql]#mysqldump -u root -p 数据库名 > /home/mysql/test.sql
Enter password:

二、设置不无需输入密码

 [root@localhost mysql]#mysqldump -u root -p密码 数据库名 > /home/mysql/111.sql
 mysqldump: [Warning] Using a password on the command line interface can be insecure.

经查询需要隐藏密码

[root@localhost mysql]# vi /etc/my.cnf

增加如下内容:
切记加到文档最后面

[client]
host = localhost
user = 数据库名
password = '密码'

在这里插入图片描述

执行如下导出命令

[root@localhost mysql]# mysqldump --defaults-extra-file=/etc/my.cnf 数据库名 > /home/mysql/22.sql

导出成功。

三、配置可执行文件

增加文件bakjypt.sh

 [root@localhost mysql]#vi bakjypt.sh

在文件中编辑内容如下:

 #!/bin/sh
#备份环境设置
extdate=`date +"%Y_%m_%d"`
extdel=`date +"%Y_%m_%d" -d "a month ago"`
extsid='jypt'
#删除备份中一个月之前的备份文件
#rm -f /home/mysql/*$extdel*
#执行备份操作
mysqldump --defaults-extra-file=/etc/my.cnf  jypt > /home/mysql/$extsid-$extdate.sql
#备份文件压缩
tar zcvf /home/mysql/$extsid-$extdate.tar.gz /home/mysql/$extsid-$extdate.sql
#rm -f /home/mysql/$extsid-$extdate.sql

分配可执行权限:

[root@localhost mysql]#chmod 755 bakjypt.sh

四、配置自动执行事件

 [root@localhost mysql]#crontab -e

在crontab文件中增加如下行:
每天23:00执行bakjypt.sh

0 23 * * * /home/mysql/bakjypt.sh
[root@localhost mysql]#service crond start

service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值