首頁 > 資料庫 > mysql教程 > linux 定时自动备份 mysql

linux 定时自动备份 mysql

WBOY
發布: 2016-06-07 15:47:00
原創
1179 人瀏覽過

环境 :linux centos 备份数据库类型 :mysql 备份需要用到的命令: rpm -q mysql //查看mysql是否安装,及其版本mysqldump -uusername -ppassword test test_2014-05-20.sql 一、用命令实现备份 1、备份数据 (某些系统mysqldump会出现找不到命令的情况,请根

环境:linux centos

备份数据库类型:mysql

备份需要用到的命令:

rpm -q mysql  //查看mysql是否安装,及其版本
mysqldump -uusername -ppassword test > test_2014-05-20.sql
登入後複製

一、用命令实现备份

1、备份数据 (某些系统mysqldump会出现找不到命令的情况,请根据实际mysql的bin目录操作)

#mysqldump -uusername -ppassword discuz > discuz_2010-04-01.sql
登入後複製
这样就把discuz数据库所有的表结构和数据备份到discuz_2010-04-01.sql里了,
如果数据量大会占用很大空间,这时可以利用gzip压缩数据。
命令如下:
#mysqldump -uusername -ppassword discuz | gzip > discuz_2010-04-01.sql.gz
登入後複製
一般还要用到错误重定向:
mysqldump -uroot -p123 test 2>> /mysql_backup/blog.txt | gzip > /mysql_backup/test_`date +%Y-%m-%d_%H%M%S`.sql.gz 2>> /mysql_backup/blog.txt
登入後複製
登入後複製

这里的mysql_backup是我新建的目录,blog.txt是日志文件,我们把错误信息都记录到这里

系统崩溃,重建系统时,可以这样恢复数据:

#mysql -uusername -ppassword discuz

二、利用crontab,系统每天定时备份mysql数据库

1、创建保存备份文件的路径/mysqldata
#mkdir /mysql_backup

2、创建/usr/sbin/bakmysql文件
输入以下内容:

mysqldump -uroot -p123 test 2>> /mysql_backup/blog.txt | gzip > /mysql_backup/test_`date +%Y-%m-%d_%H%M%S`.sql.gz 2>> /mysql_backup/blog.txt
登入後複製
登入後複製
3、修改文件属性,使其可以执行
#chmod +x /usr/sbin/bakmysql

4、现在添加计划任务
每天3点钟执行备份 

第一步:
写cron脚本文件,命名为cronmysql.cron。如:

#01 3 * * * root /usr/sbin/bakmysql      //像这种后面是命令路径的 一定要加上执行的用户
登入後複製

第二步:
添加定时任务。执行命令 “crontab crontest.cron”,大功告成

第三步:
"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本

5、重新启动crond
#/etc/rc.d/init.d/crond restart
完成。

三、数据的恢复

只备份单个数据表

<span style="font-family: Arial, Helvetica, sans-serif;">mysqldump  -uroot -p123456  database table > dump.sql</span>
登入後複製

mysql -uusername –ppassword 数据库名 
<p><span>压缩包恢复</span></p>

<pre class="brush:php;toolbar:false">gzip -d <br>
<br>

<p><span><strong><span><strong>四、进阶篇</strong></span></strong></span></p>

<pre class="brush:php;toolbar:false">mkdir /mysql_backup/bak_`date +%Y-%m-%d` 2>> /mysql_backup/blog.txt
mysqldump -uroot -p123 test blog_user | gzip > /mysql_backup/bak_`date +%Y-%m-%d`/blog_user_`date +%Y-%m-%d`.sql.gz 2>> /mysql_backup/blog.txt
mysqldump -uroot -p123 test users | gzip > /mysql_backup/bak_`date +%Y-%m-%d`/users_`date +%Y-%m-%d`.sql.gz 2>> /mysql_backup/blog.txt
登入後複製

这里展示了 先按年月日的格式 建立文件夹,然后把一些比较重要的表进行备份。本人觉得大的备份,像整个数据库导出的,每几天或每个星期登陆phpmyadmin进行一次就行,没必要用脚本自动



相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板