iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >shell学习之自动备份mysql数据库
  • 218
分享到

shell学习之自动备份mysql数据库

2024-04-02 19:04:59 218人浏览 安东尼
摘要

首先登陆Mysql:mysql -u root -p 注意:不是系统root的密码,mysql安装好后默认root密码为空>set passWord for 'root'@'localhost' =


首先登陆Mysql

mysql -u root -p 注意:不是系统root的密码,mysql安装好后默认root密码为空

>set passWord for 'root'@'localhost' = password('*****'); --修改root用户的本地密码

>grant all on zabbix.* to backup@'localhost' identified by "123456"; ---创建备份zabbix数据库的用户和密码,授权了对zabbix数据库的所有权限


退出数据库,我们编辑/etc/my.cnf,在[client]模块下添加用户名和密码如下:

host=localhost

user=backup

password='123456'


准备工作做好后来写脚本:

------------------------mysql_backup.sh--------------------------------------

#!/bin/bash  

#auto backup mysql db --说明信息

#from net video 2017  --说明信息


#define backup path  --第一步做好参数定义准备工作,有利于后面代码的简洁

BAK_DIR=/data/backup/`date +%Y%m%d`   

MYSQLDB=zabbix

MYSQLCMD=/usr/bin/mysqldump    

#以上的参数第一个是指定备份路径,第二个是备份的数据库名,第三个是备份的执行程序


#Juge the exec user author

if [ $UID -ne 0 ];then

        echo "Must to be use root for exec shell."               

        exit

fi

#以上的语句主要是用于判断是否用root用户执行


#Juge if backup exists

if [ ! -d $BAK_DIR ];then

        mkdir -p $BAK_DIR

        echo -e "\033[32mThe $BAK_DIR Creat Successfully!\033[0m"  

else

        echo "This $BAK_DIR is exists..."

fi

#以上的语句是判断备份的目录是否存在,如果不存在则创建并提示创建成功


#Mysql backup command

$MYSQLCMD --defaults-extra-file=/etc/my.cnf -d $MYSQLDB >$BAK_DIR/$MYSQLDB.sql 

#这条语句就是执行备份的,--defaults-extra-file应用文件中的mysql用户和密码,-d参数,只导出表结构


#Juge Success or Failed

if [ $? -eq 0 ];then

        echo -e "\033[32mThe Mysql Backup $MYSQLDB Successfully!\033[0m"   

else

        echo -e "\033[32mThe Mysql Backup $MYSQLDB Failed,Please check.\033[0m"

fi

#以上的语句只是一个提示备份成功与否的信息if [ $? -eq 0 ]判断以上的代码是否执行有误

在执行脚本前先用命令检测脚本:sh -n auto_mysql_backup.sh


为了测试效果,我们先来查看一下备份目录下是否有该文件,可以看到没有出现20170405这样的目录

shell学习之自动备份mysql数据库

sh auto_mysql_backup.sh 执行脚本

shell学习之自动备份mysql数据库

可以看到提示说创建20170405的目录成功并备份成,我们去目录下看看呢?

shell学习之自动备份mysql数据库

以上可以看到备份zabbix数据库成功。


备注:在以上的脚本中我们可以修改MYSQLDB为一个手动输入的参数,这样使得我们的脚本更智能

crontab -e

0  0 * * * /bin/bash /data/sh/auto_mysql_backup.sh >>/tmp/mysql_back.log

将该脚本写入crontab中每天都去执行,在以后的文章中再写一个增量备份的,更智能化。



在数据库中授权MYDB数据库给backup用户 grant all on MYDB.* to backup@'localhost' identified by "123456"; 


对以上文档稍作修改如下:

-------------------------auto_mysql_backup02.sh---------------------------------------


#!/bin/bash

#auto backup database

#from net video 2017 


BAK_DIR=/data/backup/`date +%Y%m%d`

MYSQLDB=$1

MYSQLCMD=/usr/bin/mysqldump


if [ $UID -ne 0 ];then

        echo "Must to be use root for exec shell."

        exit

fi


#增加的代码如下

if [ -z "$1" ];then

        echo -e "\033[32mUsage:\nPlease Enter DataBase that you will backup \n-------------------------------\n\nUsage: { $0 mysql } \033[0m"

        exit

fi


if [ ! -d $BAK_DIR ];then

        mkdir -p $BAK_DIR

        echo -e "\033[32mThe $BAK_DIR Creat Successfully!\033[0m"

else

        echo "This $BAK_DIR is exists..."

fi


#Mysql BACKUP COMMAND

$MYSQLCMD --defaults-extra-file=/etc/my.cnf -d $MYSQLDB >$BAK_DIR/$MYSQLDB.sql


if [ $? -eq 0 ];then

        echo -e "\033[32mThe Mysql Backup $MYSQLDB Successfully!\033[0m"

else

        echo -e "\033[32mThe Mysql Backup $MYSQLDB Failed,Please check.\033[0m"

fi

---------------------------------------------------------------------------------------------------
sh auto_mysql_backup02.sh MYDB --这样就可以备份指定的数据库了,只要授权给了backup用户,这里的授权用户我们也可以做成输入参数$2来处理。

您可能感兴趣的文档:

--结束END--

本文标题: shell学习之自动备份mysql数据库

本文链接: https://www.lsjlt.com/news/42893.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL学习之数据库备份详解
    目录1.DB,DBMS,SQL2.数据库的特点3.SQL分类4.mysql两种启动关闭方式5.mysql的登录方式()6.SQL语言规范7.navicat常用快捷键8.数据库的备份和...
    99+
    2024-04-02
  • mysql 每日自动备份数据库
    在 MySQL 中,你可以使用定时任务来每日自动备份数据库。通常,最常用的方法是使用操作系统的定时任务工具(如cron)来调度备份操作。以下是一些步骤来设置每日定时备份MySQL数据库: 创建备份脚...
    99+
    2023-09-24
    数据库 mysql
  • Windows下手动、自动备份Mysql数据库(mysqldump)
    Windows下手动、自动备份Mysql数据库 一、手动备份1.1 命令行备份1.2 通过第三方工具备份(Navicat) 二、自动备份2.1、编写备份脚本2.2 windows 创...
    99+
    2023-09-10
    数据库 mysql 服务器
  • mysql怎么定时自动备份数据库
    您可以使用MySQL的事件调度器来定时自动备份数据库。以下是一种常见的方法:1. 登录MySQL命令行客户端或其他MySQL管理工具...
    99+
    2023-08-18
    mysql
  • shell怎么实现自动备份mysql和整站数据
    这篇文章主要介绍“shell怎么实现自动备份mysql和整站数据”,在日常操作中,相信很多人在shell怎么实现自动备份mysql和整站数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell怎么实现自动...
    99+
    2023-06-09
  • PHP怎么实现MySQL数据库自动备份
    这篇“PHP怎么实现MySQL数据库自动备份”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP怎么实现MySQL数据库自动...
    99+
    2023-07-06
  • sqlserver数据库如何自动备份
    SQL Server 提供了多种备份数据库的方法,包括手动备份、自动备份和第三方备份工具。 要设置自动备份数据库,可以使用 SQL ...
    99+
    2024-04-12
    sqlserver
  • Mysql数据库之备份和恢复
     一、为什么要数据备份?   备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因: 程序错误人为,操作错误,运算错误,磁盘故障灾难(如火灾、地震)和盗窃. 二、...
    99+
    2023-09-15
    数据库 mysql
  • 8种手动和自动备份MySQL数据库的方法
    作为流行的开源数据库管理系统,MySQL的使用者众多,为了维护数据安全性,数据备份是必不可少的。本文就为大家介绍几种适用于企业的数据备份方法。 使用MySQLDump进行MySQL备份 mysqldump...
    99+
    2024-04-02
  • mysql学习笔记之备份与恢复
    5 .备份恢复 相关关...
    99+
    2024-04-02
  • mysql 数据库备份
    目录 数据库备份的方式 一、备份整个 $datadir  二、用mysqldump备份 备份某个库 只备份某个库下某个表 备份某个库,排除库中一些表以外,备份剩余的表 有很多库时候,一次性备份所有的库 一次指定备份某几个库  只备份表结构,...
    99+
    2023-09-09
    数据库
  • mysql定时自动备份数据库的方法步骤
    我们都知道数据是无价,如果不对数据进行备份,相当是让数据在裸跑,一旦服务器出问题,只有哭的份了。下面将介绍mysql数据库的自动备份,大家可根据情况自行选择将备份数据存放在哪里。 第...
    99+
    2024-04-02
  • mysql自动备份数据怎么实现
    要实现MySQL自动备份数据,可以使用以下几种方法: 使用MySQL提供的自带工具mysqldump命令来备份数据。可以编写一个...
    99+
    2024-04-09
    mysql
  • 手动备份MySQL数据库的教程
    本篇内容介绍了“手动备份MySQL数据库的教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1. Ba...
    99+
    2024-04-02
  • python备份mysql数据库
    原本可以用shell完成的功能,现在学习python,就照抄照改。完成数据库备份。 #!/usr/bin/python #-*-coding:utf-8-*- #MYSQL BACK import string,time,os,dateti...
    99+
    2023-01-31
    备份 数据库 python
  • VPS如何自动备份数据库到FTP
    小编给大家分享一下VPS如何自动备份数据库到FTP,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1)确保自己在home目录(若不是,运行:cd /home) 2)...
    99+
    2023-06-09
  • sql自动备份数据库怎么实现
    可以通过编写一个定时脚本来实现自动备份数据库。以下是一个简单的示例脚本: 创建一个备份脚本(backup.sh): #!/bin...
    99+
    2024-04-09
    sql 数据库
  • postgresql数据库自动备份怎么实现
    有多种方法可以实现PostgreSQL数据库的自动备份,以下是其中一种常见的方法: 编写备份脚本:可以编写一个 shell 脚本...
    99+
    2024-04-08
    postgresql
  • centos每天自动备份mysql数据库的脚本分享
    本篇内容主要讲解“centos每天自动备份mysql数据库的脚本分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“centos每天自动备份mysql数据库的脚本...
    99+
    2024-04-02
  • linux下mysql怎么自动备份shell脚本
    本篇内容主要讲解“linux下mysql怎么自动备份shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下mysql怎么自动备份shell脚本”吧!Linux 服务器上的程序每...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作