共计 1018 个字符,预计需要花费 3 分钟才能阅读完成。
Linux 下定时备份数据库
linux 下使用 crontab 定时备份 MYSQL 数据库的方法
只需按照下面 3 步做,一切都在你的掌控之下:
第一步:在服务器上配置备份目录代码:
1 mkdir /var/lib/mysqlbackup
2 cd /var/lib/mysqlbackup
第二步:编写备份脚本代码:
1 vi dbbackup.sh
2 粘帖以下代码,务必更改其中的 username,password 和 dbname。
3 #!/bin/sh
4 mysqldump -uuser -ppassword dbname | gzip > /var/lib/mysqlbackup/dbnamedate +%Y-%m-%d_%H%M%S
.sql.gz
5 cd /var/lib/mysqlbackup
6 rm -rf find . -name '*.sql.gz' -mtime 10
#删除 10 天前的备份文件
第三步:更改备份脚本权限
1 chmod +x dbbackup.sh
第四步:用 crontab 定时执行备份脚本代码:
crontab -e
若每天晚上 21 点 00 备份,添加如下代码
00 21 * /var/lib/mysqlbackup/dbbackup.sh
会遇到的问题:
1.mysqldump 是备份数据库的命令,不懂直接百度就好。
2.Crontab 是定时任务的命令,如果不懂可以访问 http://www.thinkphp.cn/code/1…
3. 备份数据首先要确定已经给 root 设置了密码,否则会报 mysqldump 执行时 Got error: 1045: Access denied for user‘root’@’localhost’(using password: YES) when trying to connect
解决办法:
登录 mysql 客户端
1 mysql -hserverip -uroot -p
2 mysql> use mysql; Database changed
3 mysql> update user set password=password(‘new password’) where user=’root’; Query OK, 4 rows affected (0.00 sec) Rows matched: 4 Changed: 4 Warnings: 0
4 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) // 这个命令是给用户赋予了新的权限或者密码,直接读到内存中不需要重启数据库防止出错
5 mysql> quit