Linux下Mysql数据库的备份与恢复

本文介绍了linux下如何备份与恢复mysql数据库。

数据库备份是非常重要的。如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少。

一、 用命令实现备份

MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份。

# mysqldump -u root -p tm > tm_050519.sql

按提示输入密码,这就把tm数据库所有的表结构和数据备份到tm_050519.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:

# mysqldump -u root -p tm | gzip > tm_050519.sql.gz

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

# mysqldump -u root -p tm < tm_050519.sql

从压缩文件直接恢复:

#gzip < tm_050519.sql.gz | mysqldump -u root -p tm

当然,有很多MySQL工具提供更直观的备份恢复功能,比如用phpMyAdmin就很方便。但我认为,mysqldump是最基本、最通用的。

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

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。

1、创建保存备份文件的路径/var/backup/mysqlbak

# mkdir -p /var/backup/mysqlbak

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/bakmysql.sh

#!/bin/bash
# mysql备份脚本
cd /var/backup/mysqlbak/
dateDIR=`date +"%y-%m-%d"`
mkdir -p $dateDIR/data
for i in `/usr/local/www/mysql/bin/mysql -uroot -plin31415926 -e "show databases"  | 
grep -v "Database" | grep -v "information_schema"`
do
  /usr/local/www/mysql/bin/mysqldump -uroot -plin31415926 $i   | 
gzip  > /var/backup/mysqlbak/$dateDIR/${i}_${dateDIR}.gz
done

3、修改文件属性,使其可执行

# chmod +x /usr/sbin/bakmysql

4、修改/etc/crontab

# crontab -e

在下面添加

01 3 * * * root /usr/sbin/bakmysql
#表示每天3点钟执行备份

这样每天就可以在/var/backup/mysqlbak下看到备份的sql文件 了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 3,642评论 0 7
  • MySQL 数据库常用命令 1、MySQL常用命令 create database name; 创建数据库 use...
    55lover阅读 4,846评论 1 57
  • 第一季的《见字如面》,我并没有追看,因为与央视的《朗读者》同时期,我正迷恋董卿的知性,所以只是断断续续的看了几期。...
    龙飞凤舞_c3a6阅读 552评论 4 2
  • 今天读《教育统计学》,用思维导图的方式进行总结梳理,是一种理清逻辑关系的很好手段。要点1:教育统计学是教育科研定量...
    劈柴捌哥阅读 1,841评论 3 2
  • 2016年12月1日,写下这一串数字的时候,心里有一些紧张,时间总是最公平的,一日日不留痕迹,却又用各种方式在世间...
    任亚阅读 217评论 0 0