• 使用mysqldump备份与还原的mysql数据库


    使用mysqldump备份与还原的mysql数据库

    一、mysqldump命令介绍

    1.mysqldump -help

    查看命令介绍:

    mysqldump --help

    2.mysqldump登录选项:

    -u user:指定用户

    -h host:指定主机

    -p:表示要使用密码

    -E, --events: 备份事件调度器

    -R, --routines: 备份存储过程和存储函数

    3.mysqldump备份选项:

    --all-databases:备份所有数据库
    --databases db1 db2:备份指定的数据库
    --single-transaction:对事务引擎执行热备
    --flush-logs:更新二进制日志文件
    --master-data=2
    1:每备份一个库就生成一个新的二进制文件(默认)
    2:只生成一个新的二进制文件
    --quick:在备份大表时指定该选项

    二、备份数据库的语句实例

    1.导出数据库表的表数据和表结构
    mysqldump -u[用户名] -h[ip] -p[密码] -P[端口号] 数据库名 表名 >导出的文件名.sql

    mysqldump -uroot -h 127.0.0.1 -pMrwhite@2021 -P3306 testdb game > game.sql

    2.导出包括系统数据库在内的所有数据库

    mysqldump -uroot -pMrwhite@2021 --all-databases>all.sql

    3.导出多张表:

    mysqldump -uroot -pMrwhite@2021 --databases test --tables t1 t2>two.sql

    4.只导出表结构不导表数据,添加“-d”命令参数

    mysqldump -uroot -h127.0.0.1 -pMrwhite@2021 -P3306 -d testdb game > game.sql

    5.只导出表数据不导表结构,添加“-t”命令参数

    mysqldump -uroot -h127.0.0.1 -pMrwhite@2021 -P3306 -t testdb game > game.sql

    6.只导出testdb数据库的表结构

    mysqldump -uroot -pMrwhite@2021 --no-data --databases testdb>database_testdb.sql

     

    三、还原数据库的语句实例

    1.格式:mysql -h[ip] -P[(大写)端口] -u[用户名] -p[密码] [数据库名] < d:XX.sql(路径)

    mysql -uroot -pMrwhite@2021 -h127.0.0.1 -P3306 testdb <testdb.sql  #还原单个数据库
    mysql -uroot -pMrwhite@2021 -h127.0.0.1 -P3306 

    2.命令行方式导入

    mysql> use testdb;
    mysql> source /root/test20221205/all.sql

     

    四、封装shell脚本实现数据库的快速备份与还原,并可设置对应的备份版本

    1.mysql库备份脚本:mysql_backup.sh

    复制代码

    version=$1
    service=$2
    ip=127.0.0.1
    passwd=Mrwhite@2021
    if [ ! -d ${version} ];then
    # rm -rf ${version}
    mkdir ${version}
    fi
    if [ -d ${version} ];then
    #cd ${version}
    echo "开发备份数据库"
    if [ "${service}" = "dbtest" ];then
    mysqldump -h ${ip} -uroot -p${passwd} --databases testdb > ./${version}/testdb
    echo "testdb库备份成功"
    mysqldump -h ${ip} -uroot -p${passwd} --databases testdb2 > ./${version}/testdb2
    echo "testdb2库备份成功"
    fi
    else
    echo "目录不存在"
    fi

    复制代码

    查看运行结果:

    2.mysql库还原脚本:mysql_reset.sh

    复制代码

    version=$1
    service=$2
    ip=127.0.0.1
    passwd=Mrwhite@2021
    if [ ! -d ${version} ];then
    echo "开发恢复备份数据库"
    fi
    if [ -d ${version} ];then
    #cd ${version}
    echo "开发还原数据库"
    if [ "${service}" = "dbtest" ];then
    #对应的数据库
    mysql -uroot -p${passwd} -h ${ip} -P3306 testdb <./${version}/testdb
    echo "testdb库还原成功"
    mysql -uroot -p${passwd} -h ${ip} -P3306 testdb2 <./${version}/testdb2
    echo "testdb2库还原成功"
    fi
    else
    echo "数据库备份版本不存在"
    fi

    复制代码

    查看运行结果:

  • 相关阅读:
    C++11标准模板(STL)- 算法(std::nth_element)
    手撕设计模式-单例模式详细总结和常见代码踩坑
    Magic Bullet Suite2024.0.1(ae降噪插件合集)
    vcs简单语法调试,简单仿真,无makefile
    2022年智慧城市行业概括及现状
    掌握 JavaScript 数组方法:了解如何操作和优化数组
    山东省如何准备申报“专精特新”?
    go 包的引入
    Vue3 函数式弹窗
    【数据结构】十分钟透彻了解各种二叉树的基础概念
  • 原文地址:https://www.cnblogs.com/mrwhite2020/p/16793522.html