iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么迁移mysql数据库中的表
  • 920
分享到

怎么迁移mysql数据库中的表

2024-04-02 19:04:59 920人浏览 独家记忆
摘要

本篇内容介绍了“怎么迁移Mysql数据库中的表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!作为写脚本的,

本篇内容介绍了“怎么迁移Mysql数据库中的表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

作为写脚本的,这次的重点在于实现了类似于其他语言的logging模块的输出功能。感觉还是蛮有用的,简单直观。

输出log如下所示:

2017-03-31 16:26:57 --- INFO --- You choose the name of the table below:
2017-03-31 16:26:57 --- INFO --- 2016_06_24_record_base_log
2017-03-31 16:26:57 --- INFO --- 2016_06_16_record_base_log
2017-03-31 16:26:57 --- INFO --- table insert statements 2016_06_24_record_base_log backuping
2017-03-31 16:26:57 --- INFO --- table struct 2016_06_24_record_base_log backuping
2017-03-31 16:26:57 --- INFO --- table insert statements 2016_06_16_record_base_log backuping
2017-03-31 16:26:57 --- INFO --- table struct 2016_06_16_record_base_log backuping
2017-03-31 16:26:57 --- INFO --- append the ENGINE=InnoDB --> DATA DIRECTORY\=\'\/data2\/db\/mysql\'/ to struct/2016_06_24_record_base_log.sql
2017-03-31 16:26:57 --- INFO --- append the ENGINE=InnoDB --> DATA DIRECTORY\=\'\/data2\/db\/mysql\'/ to struct/2016_06_16_record_base_log.sql
2017-03-31 16:26:57 --- INFO --- There is no back up the table
2017-03-31 16:26:57 --- INFO --- The import table structure
2017-03-31 16:26:57 --- INFO --- Insert data to the table
2017-03-31 16:26:57 --- INFO --- There is no back up the table
2017-03-31 16:26:57 --- INFO --- The import table structure
2017-03-31 16:26:57 --- INFO --- Insert data to the table
2017-03-31 16:26:57 --- INFO --- Successfully completed the operation !

 shell脚本如下所示,此脚本在Centos系统测试通过:

#!/bin/bash
mysqluser='root'
mysqlpass='dbpassWord'
mysqlhost='127.0.0.1'
mysqldb='dbname'
mysqlpath='/usr/local/mysql/bin'
mysqlport=3306

datetimes=`date "+%Y-%m-%d %H:%M:%S"`
datetimes2=`date "+%Y%m%d%H%M"`
datetimes3=`date "+%Y%m%d%H%M%S"`


backupdir="backup"
structdir="struct"
logfile="logs/test_${datetimes3}.log"
tablist="ltab.txt"


# Set the echo color
gray='\033[30;1m'
red='\033[31;1m'
green='\033[32;1m'
yellow='\033[33;1m'
blue='\033[34;1m'
pink='\033[35;1m'
white='\033[37;1m'
reset='\033[0m'

[ ! -d $backupdir ] && mkdir -p $backupdir
[ ! -d $structdir ] && mkdir $structdir
[ ! -d logs ] && mkdir logs



# logging function
function logging {
    if [ ! -z "$1" ] && [ ! -z "$2" ];then
        echo -e "${green} ${1} --- ${2} ${reset}"
        echo -e "${datetimes} --- ${1} --- ${2}" >> $logfile
    fi
}


function error {
    if [ $? -eq 0 ];then
        logging "INFO" "$1"
    else
        logging "ERROR" "${reset}${red} $1 ,have an error occurred!"
        exit 1
    fi
}

function yesorno {
    echo -e "${yellow} $1 ${reset}"
    read var
    case "$var" in
    [yY][eE][sS] ) 
        echo "Your input is YES,Program to continue" ;;
    [nN][oO] ) 
        echo "Your input is no.";
        exit 0;;
    **)
        echo -e "${red} Input Error! ${reset}" 
        exit 0
    ;;
    esac
}


echo -e "${yellow} This script is used to mysql table DATA DIRECTORY and INDEX DIRECTORY set to/data2/db/mysql and the migration of data to /data2/db/mysql directory. ${reset} " 

yesorno "Do you want to continue, yes or no?"
logging "INFO" "You choose the name of the table below:"

# Confirm the table to by update
for tab in `cat $tablist`;do
        logging "INFO" "${tab}"
done

yesorno "The above is the table you choose, you want to continue? Yes or no?"


# dump table data and struct to $backupdir and $structdir
for tab in `cat $tablist`;do
	$mysqlpath/mysqldump -u$mysqluser -p$mysqlpass -h$mysqlhost -P$mysqlport --no-create-info $mysqldb $tab > ${backupdir}/${tab}.sql
	error "table insert statements $tab backuping"
	$mysqlpath/mysqldump -u$mysqluser -p$mysqlpass -h$mysqlhost -P$mysqlport --no-data $mysqldb $tab > ${structdir}/${tab}.sql
	error "table struct $tab backuping"
done


# append the DATA DIRECTOY and DATA DIRINDEX to table struct.
for tab in `cat $tablist`;do
	if grep 'ENGINE=InnoDB' ${structdir}/${tab}.sql;then
		sed -i "s/ENGINE=InnoDB/& DATA DIRECTORY\=\'\/data2\/db\/mysql\' INDEX DIRECTORY\=\'\/data2\/db\/mysql\'/" ${structdir}/${tab}.sql
		error "append the ENGINE=InnoDB --> DATA DIRECTORY\=\'\/data2\/db\/mysql\'/ to ${structdir}/${tab}.sql"
	elif grep 'ENGINE=MyISAM' ${structdir}/${tab}.sql;then
		sed -i "s/ENGINE=MyISAM/& DATA DIRECTORY\=\'\/data2\/db\/mysql\' INDEX DIRECTORY\=\'\/data2\/db\/mysql\'/" ${structdir}/${tab}.sql
		error "append the ENGINE=InnoDB --> DATA DIRECTORY\=\'\/data2\/db\/mysql\'/ to ${structdir}/${tab}.sql"
	else
		logging "ERROR,Table structure is not found in the match engine ."
		exit 1
	fi
done

# drop old database 
for tab in `cat $tablist`;do
	if [ -f ${backupdir}/${tab}.sql ] && [ -f ${structdir}/${tab}.sql ];then
		$mysqlpath/mysql -u$mysqluser -p$mysqlpass -h$mysqlhost -P$mysqlport $mysqldb -e "drop table ${tab};"
		error "There is no back up the table"
	fi
	# import table struct to db
	if [ -f ${structdir}/${tab}.sql ];then
		$mysqlpath/mysql -u$mysqluser -p$mysqlpass -h$mysqlhost -P$mysqlport $mysqldb < ${structdir}/${tab}.sql
		error "The import table structure"
	fi
	# import table data to db
	if [ -f ${backupdir}/${tab}.sql ];then
		$mysqlpath/mysql -u$mysqluser -p$mysqlpass -h$mysqlhost -P$mysqlport $mysqldb < ${backupdir}/${tab}.sql
		error "Insert data to the table"
	fi
done

logging "INFO" "Successfully completed the operation !"

ltab.txt中存储你要想迁移的表名,如下所示:

[root@SERVER_DB] cat ltab.txt
2016_06_24_record_base_log
2016_06_16_record_base_log

最后,记得在screen下执行脚本,即使终端断开,也不用担心,脚本终止执行。如果遇到错误,脚本会立即终止执行,此时需要手动来处理。

“怎么迁移mysql数据库中的表”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么迁移mysql数据库中的表

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

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

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

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

下载Word文档
猜你喜欢
  • 怎么迁移mysql数据库中的表
    本篇内容介绍了“怎么迁移mysql数据库中的表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!作为写脚本的,...
    99+
    2024-04-02
  • mysql数据库怎么迁移
    本篇内容主要讲解“mysql数据库怎么迁移”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库怎么迁移”吧!上面是测试人员的要求,可以提取出2条有用的...
    99+
    2024-04-02
  • MySQL数据库中怎么批量迁移表索引
    这期内容当中小编将会给大家带来有关MySQL数据库中怎么批量迁移表索引,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 导出所有索引包括PRIMARY KEY和INDE...
    99+
    2024-04-02
  • mysql数据库迁移
    目录 背景迁移数据库 背景 公司有个项目,刚开始数据量不是大的时候,数据库和服务上的所有应用数据都放在一个旧小盘中,随着项目数据的增长,旧的磁盘被占满了,导致系统无法写入数据,我和同事排查了很长时间,最终确定是磁盘被占满导致的一...
    99+
    2023-08-23
    数据库 mysql
  • mysql数据库迁移怎么操作
    MySQL数据库迁移的操作步骤如下:1.备份原数据库:在迁移前先备份原数据库,以防迁移过程中数据丢失。可以使用mysqldump命令...
    99+
    2023-06-10
    mysql数据库迁移 mysql数据库 数据库
  • MySQL怎么迁移表结构和数据
    MySQL迁移表结构和数据可以通过以下几种方法实现: 使用mysqldump命令:可以使用mysqldump命令将数据库中的表结构...
    99+
    2024-04-09
    MySQL
  • mysql数据库迁移的方法
    mysql数据库迁移的方法:1、确定迁移需求;2、备份数据;3、恢复数据到新服务器;4、调整配置文件;5、迁移用户和权限。详细介绍:1、确定迁移需求,在开始迁移之前,需要明确迁移的目的和需求,这包括确定要迁移的数据库、目标平台和时间表;2、...
    99+
    2023-11-16
    数据库 mysql
  • postgresql数据库数据怎么迁移
    要迁移PostgreSQL数据库数据,可以使用以下几种方法: 使用pg_dump和pg_restore命令:可以使用pg_dump...
    99+
    2024-04-17
    postgresql
  • 怎么快速迁移MySQL中的数据
    本篇内容介绍了“怎么快速迁移MySQL中的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-04-03
    mysql
  • sqlserver数据库怎么迁移
    SQL Server数据库迁移可以通过以下几种方法进行: 使用SQL Server Management Studio (SSM...
    99+
    2024-04-12
    sqlserver
  • mysql数据库怎么迁移到阿里云
    简介 在现代应用开发中,MySQL是一种常用的数据库管理系统,但随着业务的发展,可能需要将数据库从本地服务器迁移到阿里云服务器上。本文将介绍如何快速、高效地迁移MySQL数据库至阿里云。详细说明步骤一:备份MySQL数据库在迁移之前,首先需...
    99+
    2024-01-16
    阿里 数据库 mysql
  • 【数据库迁移系列】从MySQL到openGauss的数据库对象迁移实践
    在之前这一篇中我们分享过使用chameleon工具完成MySQL到openGauss的全量数据复制、实时在线复制。9.30新发布的openGauss 3.1.0版本 ,工具的全量迁移和增量迁移的性能不但有了全面提升,而且支持数据库对象视图、...
    99+
    2023-08-17
    数据库 mysql bash 云原生
  • 如何迁移MySQL 5.7数据库
    这篇文章主要介绍如何迁移MySQL 5.7数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在源库用mysqldump备份数据库:mysqldump -uroot -p --def...
    99+
    2024-04-02
  • mysql迁移数据库到阿里云数据库
    简介 随着云计算的发展,越来越多的企业开始将传统数据库迁移到云端。阿里云数据库作为国内领先的云数据库服务提供商,提供了丰富的迁移方案,使得MySQL数据库迁移到阿里云数据库变得简单和高效。本文将介绍如何进行MySQL迁移数据库到阿里云数据库...
    99+
    2024-01-17
    数据库 阿里 mysql
  • mysql数据库迁移的方法是什么
    这篇文章主要介绍了mysql数据库迁移的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql数据库迁移的方法是什么文章都会有所收获,下面我们一起来看看吧。简介数据...
    99+
    2023-02-15
    mysql 数据库
  • mysql数据库迁移的步骤是什么
    MySQL数据库迁移的步骤通常包括以下几个方面:1.备份原始数据库:在开始迁移之前,首先需要对原始数据库进行备份,以防止数据丢失或损...
    99+
    2023-09-27
    mysql数据库
  • PHP8.0中的数据迁移库:Phinx
    随着互联网技术的发展和应用范围的不断扩大,数据迁移变得越来越常见和重要。数据迁移是指将现有的数据库结构和数据移到不同环境或新的系统上的过程。数据迁移的过程中,可以包括从一个数据库引擎到另一个数据库引擎、从一个数据库版本到另一个数据库版本、不...
    99+
    2023-05-14
    PHP 数据迁移 Phinx
  • 数据库迁移之mysql到达梦数据库
    1 背景介绍 由于业务需求要求数据库国产化,因此将数据从mysql数据库中迁移到国产达梦数据库中。将mysql中的每个库迁移到达梦不同模式下,下面为详细过程。 2 具体步骤 (1)安装达梦客户端工具 (2)点击选择DM管理工具 (3)创建...
    99+
    2023-08-20
    数据库
  • oracle怎么做数据库迁移
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-21
  • 怎么迁移现有的数据库到Aurora数据库
    迁移现有的数据库到Aurora数据库可以通过以下步骤完成: 创建一个新的Aurora数据库实例:首先在控制台上创建一个新的Auro...
    99+
    2024-04-09
    Aurora 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作