精华内容
下载资源
问答
  • 1. 在linux服务器上创建一个 msyql.sh文件 (随便定义) ,用来保存备份mysql数据的脚本 2. 编辑mysql.sh文件 (自己之前写过的一个脚本)  mysqldump -h172.25.252.62 -uroot -p123456 data_ua|gzip >data_ua.gz...

     mysql数据库备份

    1. 在linux服务器上创建一个 msyql.sh文件 (随便定义) ,用来保存备份mysql数据的脚本

    2. 编辑mysql.sh文件   (自己之前写过的一个脚本)

             #备份data_ua数据库

              mysqldump -h172.25.252.62 -uroot -p123456 data_ua|gzip > data_ua.gz 

             //mysqldump备份mysql数据的函数 -h是服务器地址 -r用户名 -p密码 data_ua是需要做备份的数据库名字 gzip是压缩格式(可以不写,也可以是其他的压缩格式) 将mysql数据压缩到data_ua,gz里面 (如果没写压缩格式,可以将data_ua,gz 写成data_ua.sql)

    注意 > 和data_ua.gz之间必须要有空格

     

               #判断备份是否成功

              if [ "$?" -eq 0 ];then    // $? 如果是0的时候表示上面的命令执行成功 

                     echo $str "mysqldump success" >> /var/log/data_ua_log.log 2>&1   //  向/var/log/data_ua_log.log 日志追加我输出的内容

                                                                                >> 是追加的意思                     2>&1 表示错误和正确的都插入日志

              else

                     echo $str "mysqldump error" >> /var/log/data_ua_log.log 2>&1

               fi

     

              scp /usr/local/data_ua.gz root@172.25.251.3:/var/backup/radius/    // scp 作用是跨linux复制文件 这里是将本地压缩文件备份到172.25.251.3 下面的/var/backup/radius/目录下

              rm /usr/local/data_ua.gz  //备份之后删除本地的备份文件

    3. chmod +x mysql.sh   //改变mysql.sh执行权限 变成可执行文件

    4 .使用crontab 做定时任务 定时跑 mysql.sh文件

     

    mysql备份数据恢复

     

    1.到mysql备份文件的目录下,

    2.解压msyql备份数据 

           gzip data_ua.gz

        得到一个解压之后的文件 data_ua

    3 恢复数据库

       mysql -h172.25.252.62 -uroot -p123456 data_ua < data_ua

       查看172.25.252.62上的data_ua数据库 里面数据已经恢复

    展开全文
  • Linux定时备份MYSQL数据

    万次阅读 2019-10-22 10:02:40
    创建文件夹 存放脚本 和 备份sql mkdir backup cd backup mkdir data ...mysql_user="USER" #MySQL备份用户 mysql_password="PASSWORD" #MySQL备份用户的密码 mysql_host="localhost" mysql_port="...

    创建文件夹 存放脚本 和 备份sql

    mkdir backup
    cd backup 
    vi  backup.sh
    
    #!/bin/bash
    
    # 以下配置信息请自己修改
    mysql_user="USER" #MySQL备份用户
    mysql_password="PASSWORD" #MySQL备份用户的密码
    mysql_host="localhost"
    mysql_port="3306"
    mysql_charset="utf8" #MySQL编码
    backup_db_arr=("db1" "db2") #要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")
    backup_location=/opt/mysql  #备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹
    expire_backup_delete="ON" #是否开启过期备份删除 ON为开启 OFF为关闭
    expire_days=3 #过期时间天数 默认为三天,此项只有在expire_backup_delete开启时有效
    
    # 本行开始以下不需要修改
    backup_time=`date +%Y%m%d%H%M`  #定义备份详细时间
    backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间
    backup_3ago=`date -d '3 days ago' +%Y-%m-%d` #3天之前的日期
    backup_dir=$backup_location/$backup_Ymd  #备份文件夹全路径
    welcome_msg="Welcome to use MySQL backup tools!" #欢迎语
    
    # 判断MYSQL是否启动,mysql没有启动则备份退出
    mysql_ps=`ps -ef |grep mysql |wc -l`
    mysql_listen=`netstat -an |grep LISTEN |grep $mysql_port|wc -l`
    if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then
            echo "ERROR:MySQL is not running! backup stop!"
            exit
    else
            echo $welcome_msg
    fi
    
    # 连接到mysql数据库,无法连接则备份退出
    mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password <<end
    use mysql;
    select host,user from user where user='root' and host='localhost';
    exit
    end
    
    flag=`echo $?`
    if [ $flag != "0" ]; then
            echo "ERROR:Can't connect mysql server! backup stop!"
            exit
    else
            echo "MySQL connect ok! Please wait......"
            # 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份
            if [ "$backup_db_arr" != "" ];then
                    #dbnames=$(cut -d ',' -f1-5 $backup_database)
                    #echo "arr is (${backup_db_arr[@]})"
                    for dbname in ${backup_db_arr[@]}
                    do
                            echo "database $dbname backup start..."
                            `mkdir -p $backup_dir`
                            `mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $dbname --default-character-set=$mysql_charset | gzip > $backup_dir/$dbname-$backup_time.sql.gz`
                            flag=`echo $?`
                            if [ $flag == "0" ];then
                                    echo "database $dbname success backup to $backup_dir/$dbname-$backup_time.sql.gz"
                            else
                                    echo "database $dbname backup fail!"
                            fi
                            
                    done
            else
                    echo "ERROR:No database to backup! backup stop"
                    exit
            fi
            # 如果开启了删除过期备份,则进行删除操作
            if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then
                     #`find $backup_location/ -type d -o -type f -ctime +$expire_days -exec rm -rf {} \;`
                     `find $backup_location/ -type d -mtime +$expire_days | xargs rm -rf`
                     echo "Expired backup data delete complete!"
            fi
            echo "All database backup success! Thank you!"
            exit
    fi
    

    给 backup.sh权限

    chmod u+x backup.sh
    

    添加定时任务计划

    crontab -e
    

    然后在里面输入该命令

    30 01 * * * /developer/backup/backup.sh
    

    表示每天晚上1点30分会执行

    crontab: installing new crontab表示执行新的定时任务
    在这里插入图片描述
    如果提示该错误,那么删除root文件夹,重新来一遍就可以了
    在这里插入图片描述

    展开全文
  • linux 每天备份mysql数据

    千次阅读 2014-11-14 15:05:24
    如果你的数据库文件较大,可能备份的时候需要占用很多服务器资源,所以站长要尽量选择访客最少的时间段执行自动备份命令,比如凌晨4-5点左右。而且要注意给备份留下足够的时间然后执行存储命令。因为一个服务器可能...

    前言:

    如果你的数据库文件较大,可能备份的时候需要占用很多服务器资源,所以站长要尽量选择访客最少的时间段执行自动备份命令,比如凌晨4-5点左右。而且要注意给备份留下足够的时间然后执行存储命令。


    第一步:

    首先要支持crontab,如果不支持的话,请参考我的博客:Linux VPS/服务器上用Crontab来实现VPS自动化 http://blog.csdn.net/phpfenghuo/article/details/40828847


    第二步:

    shell脚本->mysqlbak.sh

    #!/bin/bash
    
    BACKPATH='存储文件路径'
    D=`date +%Y-%m-%d_%H%M%S`
    NAME=$D.sql.gz
    
    /usr/local/mysql/bin/mysqldump -u数据库名 -p数据库密码 指定的数据库 --skip-lock-tables | gzip > $BACKPATH/$NAME

    第三步:

    定时任务执行 每天两点后执行。具体可以根据个人情况哦!

    执行命令:crontab -e

    00 02 * * * /脚本路径/mysqlbak.sh

    因为一个服务器可能会遭到天灾人祸,备份的数据库文件要存在不同的服务器或者下载到本地更保险。其实就是这么简单啦!

    展开全文
  • linux的crontab定时服务备份mysql数据

    千次阅读 2015-11-03 09:06:39
    利用Linux的crontab定时服务备份mysql数据

    利用Linux的crontab定时服务备份mysql数据。

    一、库文件备份

    库文件备份,我建议一周一次(当然,我的项目规模一般,然后至于怎么一周一次,稍候我们再聊了)

    #!/bin/bash
    date_now=`date +%Y_%m_%d_%H%M%S`
    mysqldump -uroot -plixiaoli --flush-logs --master-data=2 maweiqing>/home/backup/${date_now}.sql &&
    zip -r /home/backup/${date_now}.zip /home/backup/${date_now}.sql
    rm -f /home/backup/${date_now}.sql
    1. 获取当前日期,作为库文件备份的文件名
    2. mysqldump命令对数据库maweiqing备份到20151030.sql中
    3. zip命令对文件压个缩。
    4. rm命令删除sql文件

    二、二进制日志备份

    二进制文件备份,我建议早晚各一次了。

    
    #!/bin/bash
    date_now=`date +%Y_%m_%_d_%H%M%S`
    filename=mysql-bin
    filesuffix_max=0
    filesuffix_lastbutone=0
    mysqlpath=/var/lib/mysql/
    backuppath=/home/backup/mysqlbinarylog/
    mysqladmin -uroot -plixiaoli flush-logs &&
    for fname in `ls $mysqlpath`
    do
    filesuffix=${fname##*.}
    isnum=`expr match ${filesuffix} '[0-9][0-9]*$'`
    
    if [ $isnum ] && [ $isnum -ne 0 ] && [ $filesuffix -gt $filesuffix_max ]
       then
           filesuffix_lastbutone=$filesuffix_max
           filesuffix_max=$filesuffix
    fi
    done &&
    filefullname=${filename}.${filesuffix_lastbutone}
    cp $mysqlpath$filefullname $backuppath &&
    zip ${backuppath}${date_now}${filefullname}.zip $backuppath$filefullname &&
    echo "done"


    1. 注意,二进制日志备份,需要mysql开启二进制日志。
    2. 其文件路径是在/var/lib/mysql/路径下面。
    3. mysqladmin 命令进行二进制日志备份。

    说到这,我觉得我要提醒你点什么,以免你照做后出现错误来找我(如果你要来找我,我觉得挺乐意的)。

    • 上面两个文件列出的路径,你一定要检查是否存在,如果不存在,就mkdir一下。
    • zip命令如果在服务器上没有安装的话,我稍候也会告诉你怎么做的。
    • mysql日志文件的事情,我的另一篇文章会说明的,请参见
    • 至于在Linux上怎么编辑文件,我想你可以问问“vim”大人。
    • 还有什么忘记说的?对了,你在看这篇文章之前最好看看mysql配置

    这两个文件是搞好了,接下来要做什么?“元芳,你怎么看?”“大人,你觉得呢?”

    三、测试备份

    首先,要想让两个文件运行,肯定是要赋予他们灵魂的,不然,怎么搞。

    [root@iZ23gsv94suZ soft]# chmod 700 flushlog_and_copy.sh 
    [root@iZ23gsv94suZ soft]# chmod 700 backuplixiaoli.sh 

    库文件备份

    [ot@iZ23gsv94suZ soft]# sh backuptiangong.sh 
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
      adding: home/backup/2015_10_30_105545.sql (deflated 77%)
    
    [root@iZ23gsv94suZ backup]# ll
    total 28
    -rw-r--r-- 1 root root 23948 Oct 30 10:55 2015_10_30_105545.zip
    

    二进制日志备份

    [root@iZsuZ soft]# sh flushlog_and_copy.sh 
    mysqladmin: [Warning] Using a password on the command line interface can be insecure.
    expr: syntax error
      adding: home/backup/mysqlbinarylog/mysql-bin.000002 (deflated 36%)
    done
    
    [root@iZ23gZ soft]# cd /home/backup/mysqlbinarylog/
    [root@iZ23 mysqlbinarylog]# ll
    total 8
    -rw-r--r-- 1 root root 343 Oct 30 10:59 2015_10_30_105901mysql-bin.000002.zip
    -rw-r----- 1 root root 167 Oct 30 10:59 mysql-bin.000002
    

    四、加入crontab定时服务

    到这呢,你可能需要先看看Linux:时间同步,了解一下Linux的自动化服务!

    ①、先看看crontab服务

    [root@iZ23gsv94suZ mysqlbinarylog]# crontab -l
    -bash: crontab: command not found

    ②、安装crontab

    [root@iZ23gsv94suZ mysqlbinarylog]# yum install -y vixie-cron
    Loaded plugins: security
    Setting up Install Process
    Resolving Dependencies
    Installed:
      cronie.x86_64 0:1.4.4-15.el6                                                                                                                                                                                                  
    
    Dependency Installed:
      cronie-anacron.x86_64 0:1.4.4-15.el6                                            crontabs.noarch 0:1.10-33.el6                                            exim.x86_64 0:4.72-7.el6                                           
    
    Complete!

    ③、设置crontab开机启动

    参照Linux:时间同步.

    ④、将mysql备份文件加入crontab

    crontab -e
    30 12,17,23 * * 1-5 sh /home/soft/flushlog_and_copy.sh
    40 23 * * 6 sh /home/soft/backuplixiaoli.sh
    1. 周一到周五12点半、17点半、23点半进行二进制文件备份
    2. 周六23点40分进行库文件备份。

    然后,我们crontab -l查看一下,是否已经命令加入到自动化任务中!


    相关文章


    感谢您阅读【沉默王二的博客】,如果王二的博客给您带来一丝帮助或感动,我(也就是王二)将不甚荣幸。
    如果您碰巧喜欢,可以留言或者私信我,这将是我鼓捣更多优秀文章的最强动力。

    展开全文
  • 冷备是把数据库服务,比如MySQL,Oracle停下来,然后使用拷贝、打包或者压缩命令对数据目录进行备份;那么我们很容易想到热备就是在MySQL或者其他数据库服务在运行的情况下进行备份。但是,这里存在一个问题,因为...
  • 当安装完成操作系统之后,默认便会启动此任务调度命令。下面这篇文章主要给大家介绍了关于在LinuxMysql定时任务备份数据的实现方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
  • 主要介绍了Linux系统下如何自动备份MySQL数据的基本教程,还给出了利用shell脚本全备份和增量备份的基本方法,需要的朋友可以参考下
  • linux下自动备份MySQL数据并上传到FTP上的shell脚本,需要的朋友可以参考下
  • linux备份mysql数据库

    千次阅读 2009-10-29 13:43:00
    MYSQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。 1、创建备份文件夹 #cd /www  #makedir backup  2、编写运行脚本 #vi autobackup 写入以下...
  • linuxmysql数据备份 恢复

    千次阅读 2013-08-30 15:42:43
    比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump  命令格式如下:  [root@linuxsir01 root]# mysqldump -u root -p linux > /root/linux.sql  Enter password:在这里输入数据库的密码...
  • LinuxMySQL备份

    万次阅读 2019-02-28 15:42:45
    LinuxMySQL数据库备份和恢复 LinuxMySQL数据库有逻辑备份和物理备份,也可以分为完全备份、部分备份。 ·完全备份是指备份整个数据集(即整个数据库) ·部分备份是指备份部分数据集(只备份一个表) 逻辑...
  • 本文介绍了在Linux操作系统下通过FTP来备份Mysql数据的方法。
  • 本文只要主要讲解linux定时压缩备份mysql数据库,并能自动删除较早的备份数据。实验达到了预期的效果,虽然中间不是很顺利,但是错误中学到了更多的东西,之所以拿出来分享一下,是希望大家引以为戒。不足之处,希望...
  • linuxmysql命令方式备份数据的问题

    千次阅读 2015-05-29 10:57:24
    这几天公司新出了个组件化的项目,里面需要用到mysql数据库相关的技术,由于之前一直用的mongodb,所以mysql几乎忘光了,于是只能在linux虚拟机中重新开始学习。基本的增删改查还好,但是在数据备份的上遇到了一些...
  • 信息中说的很清楚,需要向黑客支付一定数量的比特币来找回数据,先不说钱的问题,就算支付了比特币,能不能找回数据还是另一回事,有可能黑客只是粗暴地将数据删除了。 这是我第一次遇见黑客,在平常学习中,我的...
  • Linux自动备份MySql数据库

    万次阅读 2015-11-26 16:28:30
    数据就是金钱,有时候的误操作可能就会导致数据库中数据丢失,有一次我们项目组的一个开发人员错写了一个方法,导致平台中所有商品的全部删除了,幸亏大数据部门的人员对数据三天一备份,才没有造成大的损失,所以...
  • 二、编写脚本定时备份三天内的mysql数据 一、检查并安装定时任务 1.查看是否有定时任务: service crond status 如果不存在则安装定时任务: yum -y install vixie-cron yum -y install crontabs 2.启动...
  • 今天操作数据库的时候不小心delete了一张表的数据,导致数据无法恢复,突然意识到数据备份的重要性我使用的是MySQL5.6的版本1、创建备份存放的目录#mkdir /home/backup2、编写要执行的.sh脚本文件#vim /home/backup/...
  • 在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩。需要注意的是,这段脚本仅适用数据一致性要求不高的环境。 代码如下:#!/bin/bash mysql_pwd=”password”mysql_dump=”/usr/local/mysql/bin/...
  • 备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到...这篇文章主要介绍了linux实现mysql数据库每天自动备份定时备份,需要的朋友可以参考下
  • 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ——————————————————————————– mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup ——————...
  • linux备份mysql数据库

    万次阅读 2018-04-17 13:36:01
    linux备份mysql数据库,命令是:[root]# mysqldump -u 用户名 -p 密码 --all-databases &gt; /home/mysql/bak.sql如果报错就添加如下:mysqldump -h localhost -u root -p psword root@172.16.123.88 --all...
  • 1.将mysql数据文件做备份 cp -r /var/lib/mysql/ /tmp/mysql_data 2.彻底卸载mysql 3.安装mysql,并启动mysql服务 4.进入备份的目录,可以看到各个数据库文件夹,文件夹中有.frm(储存表结构)和.ibd(储存表数据) cd...
  • 为了保障数据的安全,需要定期对数据进行备份备份的方式有很多种,效果也不一样。一旦数据库中的数据出现了错误,就需要使用备份好的数据进行还原恢复。从而将损失降到最低。下面我们来了解一下MySQL常见的有三种...
  • Linux下实现Mysql定时任务备份数据

    千次阅读 2018-11-14 21:59:32
    创建备份目录 本实例将创建目录放置于/mnt目录下,可根据具体情况放置于其他目录: cd /mnt mkdir dbback pwd /mnt/dbback 创建shell脚本 脚本名称可根据自己规范进行自定义: vim bcmysql.sh 进入编辑器,输入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,184
精华内容 29,273
关键字:

linux备份mysql没数据

linux 订阅
mysql 订阅