Heim > Datenbank > MySQL-Tutorial > linux 定时自动备份 mysql

linux 定时自动备份 mysql

WBOY
Freigeben: 2016-06-07 15:47:00
Original
1183 Leute haben es durchsucht

环境 :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
Nach dem Login kopieren

一、用命令实现备份

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

#mysqldump -uusername -ppassword discuz > discuz_2010-04-01.sql
Nach dem Login kopieren
这样就把discuz数据库所有的表结构和数据备份到discuz_2010-04-01.sql里了,
如果数据量大会占用很大空间,这时可以利用gzip压缩数据。
命令如下:
#mysqldump -uusername -ppassword discuz | gzip > discuz_2010-04-01.sql.gz
Nach dem Login kopieren
一般还要用到错误重定向:
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
Nach dem Login kopieren
Nach dem Login kopieren

这里的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
Nach dem Login kopieren
Nach dem Login kopieren
3、修改文件属性,使其可以执行
#chmod +x /usr/sbin/bakmysql

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

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

#01 3 * * * root /usr/sbin/bakmysql      //像这种后面是命令路径的 一定要加上执行的用户
Nach dem Login kopieren

第二步:
添加定时任务。执行命令 “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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage