MySQL - mysqldump多种方式实现数据迁移

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL - mysqldump多种方式实现数据迁移

2021031122254277.png

一行命令

mysqldump -h172.168.15.222 -P3406 -uroot -p123456 -C --databases artisan |mysql -h172.168.15.221 -P3406 -uroot -p123456 zfdc


-C 压缩


Shell 导入导出

【导出】

#!/bin/bash
# 以下配置信息请根据现场实际情况修改
mysql_user="root"  #MySQL备份用户
mysql_password="123456"  #MySQL备份用户的密码
mysql_host="172.168.15.222" 
mysql_port="3406"
mysql_charset="utf8" #MySQL编码
backup_db_arr=("chkproof" "framework" "zfdc" "zfmg") #要备份的数据库名称,多个用空格分开隔开  
backup_location=/home/ap/mysqlbackup03  #备份数据存放位置,末尾请不要带"/", 不存在则创建文件夹
# 本行开始以下不需要修改
# 连接到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! please check config or server ! backup stop!"
        exit
else
        echo "MySQL connect ok! Please wait......"
        # 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份
        if [ "$backup_db_arr" != "" ];then
                for dbname in ${backup_db_arr[@]}
                do
                        echo "database【$dbname】backup start...may cost servral minutes depends on the size of database , please waiting for a while ..."
                        `mkdir -p $backup_location`
                         # 如果有创建数据库的权限 就使用下面这一行带有 -B 的指令
                         #`mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password  -B $dbname --default-character-set=$mysql_charset  > $backup_location/$dbname.sql`
                        # 前提:数据库用户创建好。 建行分配的应用账号没有创建DB的权限,所以导出的脚本中 不包含 create database. 
      `mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password  $dbname --default-character-set=$mysql_charset  > $backup_location/$dbname.sql`
                        flag=`echo $?`
                        if [ $flag == "0" ];then
                                echo "database $dbname success backup to $backup_location/$dbname.sql"
                                echo "                                                               "
                        else
                                echo "database $dbname backup fail!"
                        fi
                done
        else
                echo "ERROR:No database to backup! Please check config ! backup stop"
                exit
        fi
        echo "All database backup success!"
        exit
fi


【导入】

#!/bin/bash
# 以下配置信息请根据现场实际情况修改
mysql_user="root" 
mysql_password="123456" 
mysql_host="172.168.15.200" 
mysql_port="3406"
mysql_charset="utf8" #MySQL编码
backup_location=/home/ap/mysqlbackup03  
# 本行开始以下不需要修改
# 连接到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! please check config or server ! import stop!"
        exit
else
        echo "MySQL connect ok! Please wait......"
        # 判断有没有配置DB文件存放的位置
        if [ "$backup_location" != "" ];then
                for zffile in `ls $backup_location`;
                do
                        echo "file【$zffile】import start...may cost servral minutes depends on the size of database , please waiting for a while ..."
      database=`echo $zffile | awk -F "." '{ print $1}'`
                        echo "$database importing..."
                        `mysql -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $database  < $backup_location/$zffile`
                        flag=`echo $?`
                        if [ $flag == "0" ];then
                                echo "$zffile  import successfully"
                                echo "                              "
                        else
                                echo "$zffile  import  fail!!!"
                        fi
                done
        else
                echo "ERROR:No file to import! Import stop"
                exit
        fi
        echo "All database import success!"
        exit
fi


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
监控 NoSQL 关系型数据库
在进行RDS(例如阿里云的RDS)数据迁移后,评估数据一致性
在进行RDS(例如阿里云的RDS)数据迁移后,评估数据一致性
126 3
|
2月前
|
关系型数据库 MySQL 数据库
rds迁移数据迁移工具选择
rds迁移数据迁移工具选择
69 3
|
2月前
|
监控 关系型数据库 数据库
rds跨区迁移数据迁移
rds跨区迁移数据迁移
24 3
|
6月前
|
SQL 关系型数据库 MySQL
将MySQL 数据迁移到 PostgreSQL
将MySQL 数据迁移到 PostgreSQL 可以采用以下步骤: 安装 PostgreSQL 数据库:首先,需要安装 PostgreSQL 数据库。可以从官方网站(https://www.postgresql.org/)下载最新版本的 PostgreSQL,并根据官方指南进行安装。 创建 PostgreSQL 数据库:在 PostgreSQL 中创建与 MySQL 数据库相对应的数据库。可以使用 pgAdmin 或命令行工具(如 psql)来创建数据库。例如,如果在 MySQL 中有一个名为 "mydb" 的数据库,那么可以在 PostgreSQL 中创建一个具有相同名称的数据库。 导
829 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)
MySQL技能完整学习列表10、数据导入和导出——1、数据导入(LOAD DATA, mysqldump)——2、数据导出(SELECT ... INTO OUTFILE, mysqldump)
49 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表11、日志和备份——1、查看日志——2、数据备份和恢复(mysqldump, mysqlbinlog)
MySQL技能完整学习列表11、日志和备份——1、查看日志——2、数据备份和恢复(mysqldump, mysqlbinlog)
47 0
|
3月前
|
关系型数据库 MySQL 数据库
实现RDS MySQL实例数据迁移的详细步骤
实现RDS MySQL实例数据迁移的详细步骤 随着科技的飞速发展,数据库的应用越来越广泛,而数据迁移作为数据库管理的重要环节,其重要性不言而喻。本文将详细介绍如何使用数据传输服务(Data Transmission Service,简称DTS),实现将三节点企业系列的RDS MySQL实例的数据迁移到集群系列的RDS MySQL。
132 4
|
4月前
|
SQL 关系型数据库 MySQL
⑩⑨【Tool】MySQL常用客户端管理工具:mysql、mysqladmin、mysqlbinlog、mysqlshow、mysqldump、mysqlimport、source
⑩⑨【Tool】MySQL常用客户端管理工具:mysql、mysqladmin、mysqlbinlog、mysqlshow、mysqldump、mysqlimport、source
48 0
|
9月前
|
关系型数据库 MySQL 数据库
MySQL实战基础知识入门(6):mysql使用mysqldump导出数据出错的解决方案
MySQL实战基础知识入门(6):mysql使用mysqldump导出数据出错的解决方案
156 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL mysqldump 数据备份
MySQL mysqldump 数据备份
38 0
MySQL mysqldump 数据备份