linux上 mysql数据库备份与还原 (mysqldump)

linux上 mysql数据库备份与还原 (mysqldump)最近要写mysql数据库备份,把自己所得记录下来,防止以后忘了,哈哈哈哈(注 这是远程备份,备份到指定服务器)使用环境   centos7   mysql5.7    远程连接主机免密码登录,   在运行服务器上执行  ssh-keygen   一路回车,还是不要添加密码的好,这时候可以注意一下公钥,秘钥保存位置  把公钥放到备份的服务器上 ssh-…

大家好,又见面了,我是你们的朋友全栈君。

最近要写mysql数据库备份,把自己所得记录下来,防止以后忘了,哈哈哈哈

(注  这是远程备份,备份到指定服务器)


使用环境 

  1.     centos 7
  2.     mysql 5.7 
  3.    远程连接主机免密码登录 ,
       在运行服务器上执行   ssh-keygen
       一路回车,还是不要添加密码的好,这时候可以注意一下公钥,秘钥保存位置
      把公钥放到备份的服务器上 ssh-copy-id root@192.168.1.1
     (注意:这两台linux必须能ping通)

  msyql自带的mysqldump和xtrabackup工具,两种方法备份,今天先介绍一下mysqldump

一.使用mysqldump备份

 一般使用备份,都是备份到远程服务器上,别问我为什么,备份到本地,服务器崩了,一切都瞎了啊,哈哈哈,所以一下是备份到远程,但是可以在本地测试啊!

     在运行服务器上执行:      

     1.创建脚本,并添加内容     ps一步到位,脚本位置,自己意愿

               cd  /home                  (我的是在home目录下)

               vim mysql_data.sh

             2.添加下面的内容

#!/bin/sh 
DUMP=/usr/bin/mysqldump     #mysqldump的路径,不知道的可以全局搜索一下  find / -name mysqldump 
OUT_DIR=/home/longlong        #备份文件的目录,没有提前建好
DB_NAME=database        #要备份的数据库名字
DB_USER=root          #数据库登录名
DB_PASS=root           #数据库登陆密码
HOST=192.168.1.1    #远程备份ip
USE=root               #远程备份用户
DATE=`date +%Y%m%d%H%M`        #当前时间
OUT_SQL="mysqldata_bak_$DATE.sql.gz"     #备份出来的sql文件名
$DUMP  -u$DB_USER -p$DB_PASS $DB_NAME | gzip -c | ssh $USE@$HOST "cat >$OUT_DIR/$OUT_SQL"

      3.将脚本设置成可执行的文件类型

      chmod +x /home/mysql_data.sh

     这时候就可以测试一下脚本,看是否正确,这里有两种方法

            1    cd  /home. 

                   ./mysql_data.sh

             2.     bash -x  /home/mysql_data.sh

       都可以查看脚本是否执行成功    

     4.添加定时任务  crontab

        crontab -e 

       添加如下命令  (每天的一点三十分执行)

        30 1 * * *  /home/mysql_data.sh  

      5 重启定时任务

        service crond restart

  在备份服务器上执行:

      1.在备份服务器上创建备份目录  (此测试生成目录放在home下)

          cd /home

         mkdir  mysql_data            住:此目录应与上面脚本mysql_data.sh中的备份目录一致

        2.创建脚本,用来保存最近五天的备份

          vim dele.sh

         复制以下内容    

DAYS=5
BACKUP_DIR=/home/longlong    #(这个文件和上面备份的文件一致)
#删除过期的文件
find $BACKUP_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \;        #删>除5天前的备份文件(注意:{} \;中间有空格)

            3.将脚本文件设置成可执行文件类型

                chmod +x /home/dele.sh

              4.添加计划任务

                crontab -e

               输入如下命令

                30 1 * * *  /home/dele.sh

              5.重启定时任务

              service crond restart

   二.mysqldump数据库备份还原

       在备份服务器上执行

      1.解压缩

          gunzip   备份文件名

       2.还原数据库

        mysql -u root -p datapase < 备份文件名

一些ok,剩下测试.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133225.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql怎么设置远程连接_允许远程连接在哪里

    mysql怎么设置远程连接_允许远程连接在哪里MySql设置远程连接Windows与Linux同理本文使用的是MySQL8.0版本,安装在centos7中,不管是在Windows还是Linux中都是通用的,基于权限修改来达到远程连接的目的Windows与Linux同理打开终端控制面板,输入mysql-uroot-p你的Mysqlroot密码回车…

    2022年9月25日
  • NoSQL之Redis数据库初探

    一、NoSQL的风生水起1.1后Web2.0时代的发展要求随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经

    2021年12月28日
  • 【汇编语言】(x86)test与跳转指令(je jle jge jg jl……)组合的含义

    【汇编语言】(x86)test与跳转指令(je jle jge jg jl……)组合的含义在x86指令集中,经常遇到text指令与条件跳转指令组合,这是什么含义呢?博主表示,查了很多资料也没人完全说清楚……这里只用最简单的,抽象层次进行说明,不讲原理。举例text edx,edxjle 某地址含义是:如果edx<=0,就跳到某地址,否则继续往下执行。jle换成jg的话,就是edx>0跳转。其他同理。与cmp指令和跳转指令组合的区别是:这个组合比较的是cmpA,B中,A与B的关系。而textA,A则比较的是A与0的关系。这些都是抽象层次的应

    2022年10月30日
  • activity manager_tasklist findstr

    activity manager_tasklist findstr//getRunningTasks(int),获取int个任务栈列表,但返回的列表size可能会小于int//getRunningTasks(int).get(0):获取当前正在运行的任务栈对象,通过这个对象可获取栈中activity的数量、正处于运行状态的activity数量等等信息//getRunningTasks(int).get(0).topActivity:获取当前正在运行的任…

    2022年9月7日
  • 字符数组初始化问题解法_字符数组和字符串的区别

    字符数组初始化问题解法_字符数组和字符串的区别在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:(1)chara[10]=””; (2)chara[10]={‘\0′}; (3)chara[10];str[0]=’\0’;第1,2种方式是将a数组的所有元素都初始化为’\0’,而第3种方式是只将str数组的第一个元素初始化为’\0’。如果数组的size非常大,那么前两种方式…

    2022年8月31日
  • \r,\n,\r\n的区别

    \r,\n,\r\n的区别

    2021年9月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号