Heim  >  Artikel  >  php教程  >  Linux下定时备份数据库

Linux下定时备份数据库

WBOY
WBOYOriginal
2016-06-07 11:39:071060Durchsuche

linux下使用crontab定时备份MYSQL数据库的方法
只需按照下面3步做,一切都在你的掌控之下:

第一步:在服务器上配置备份目录代码:

-------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup <br> <br> cd /var/lib/mysqlbackup<br> <br>  --------------------------------------------------------------------------------

第二步:编写备份脚本代码:

-------------------------------------------------------------------------------- vi dbbackup.sh --------------------------------------------------------------------------------

粘帖以下代码,务必更改其中的username,password和dbname。

代码:

-------------------------------------------------------------------------------- #!/bin/sh<br> <br> mysqldump -uuser -ppassword dbname | gzip > /var/lib/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz<br> <br> cd  /var/lib/mysqlbackup<br> <br> rm -rf `find . -name '*.sql.gz' -mtime 10`  #删除10天前的备份文件--------------------------------------------------------------------------------

第三步:更改备份脚本权限

代码:

-------------------------------------------------------------------------------- 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/1003.html

3.备份数据首先要确定已经给root设置了密码,否则会报mysqldump执行时Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
解决办法:登录mysql客户端<br> <br> mysql -hserverip -uroot -p<br> mysql> use mysql; Database changed<br> 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<br> mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) //这个命令是给用户赋予了新的权限或者密码,直接读到内存中不需要重启数据库防止出错<br> mysql> quit

AD:真正免费,域名+虚机+企业邮箱=0元

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:onethink支付宝插件Nächster Artikel:7款超炫的弹出层效果Fancybox