zoukankan      html  css  js  c++  java
  • Linux环境mysql快速备份及迁移

           在项目实施的过程中,经常会面临数据库迁移,导出和导出数据,如果用普通的mysql客户端备份,时间较长且容易出错。那么mysql快速备份及迁移,就成为数据库迁移的重中之重。

    下面介绍我在项目实现过程中用到的方法。

          1.为了方便,这边直接将需要执行的SQL语句写成脚本dbbak.sh。脚本内容如下:       

    #!/bin/sh
    #bak dir
    BACKUP_ROOT=备份路径
    
    BACKUP_FILEDIR=$BACKUP_ROOT
    
    #current date
    DATE=$(date +%Y%m%d)
    
    ###backup db
    DB_NAME=dfdb
    DB_USER="用户名"
    DB_PASS="密码"
    DB_HOST="IP地址"
    
    cd /usr/local/mysql/bin
    #DB_NAME=dbname
    ./mysqldump -h$DB_HOST -P12306 -u$DB_USER -p$DB_PASS --default-character-set=utf8 -q -B dbname | gzip > $BACKUP_FILEDIR/dbname-$DATE.sql.gz

    2.备份数据库,执行上述脚本文件,会生成 dbname-xxx.sql.zip 文件,即是备份好的数据库文件

    3.下载备份好的 dbname-xxx.sql.zip 文件,上传到新的服务器中,然后执行gzip -d  dbname-xxx.sql.zip  进行解压

    4.切换到mysql 的 路径下, 比如  cd /usr/local/mysql/bin   然后 root 账户登录  ./mysql -u root -p  到 mysql> 的状态。

    5.查看所有的数据库   show databases;(特别注意,如果迁移过来的数据的需要更改数据库名称,就要在第3步前修改备份文件里的数据库的名称)

      如果有相同的数据库名称,需要先备份之前的数据库,否则后面数据迁移的过程中,会覆盖掉之前的数据。

    6.创建新的数据库名称: CREATE DATABASE dbname;

    7.切换到当前的数据库 :use dbname;

    8.在mysql> 状态 source  /mnt/dbname.sql  //替换为上面解压的数据库文件实际路径及文件名称

    至此数据库备份迁移完毕!

  • 相关阅读:
    shell语句for循环
    ls命令详解
    计算机相关概念总结(3)
    计算机相关概念总结(2)
    计算机相关概念总结(1)
    devops的概念
    jenkins无法连接gitlab
    Jenkins创建镜像后无法推送到harbor的问题
    Jenkins+gitlab+maven持续集成
    jenkins打完包在哪里
  • 原文地址:https://www.cnblogs.com/fron/p/11623282.html
Copyright © 2011-2022 走看看