mysql-idb文件批量恢复某库的数据

该博客介绍了如何在Linux环境下,通过shell脚本批量恢复MySQL数据库中表的数据。首先确保表结构存在,然后安装相同版本的MySQL,创建新的数据库并保持字符集一致。接着,利用ALTER TABLE DISCARD/IMPORT TABLESPACE命令卸载和恢复表空间,将备份的ibd文件复制到相应位置,并调整权限。提供的shell脚本自动执行这些操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


#前提是表结构是存在的

#根据frm、ibd文件恢复步骤概要

#    备份历史的frm、ibd文件、表结构语句
#    安装原本的mysql版本
#    创建和原本库名一致新库,注意数据库字符集都要保持一样,是否区分大小写,以及表名称是否有大小写,如果表名称有大小写,新启动的mysql一定要开启大小写[开启大小写参数:lower_case_table_names = 0]
#    通过备份原先的表结构,创建一个和原先结构一样的空表。
#    使用"ALTER TABLE DISCARD TABLESPACE;"命令卸载掉表空间
#    将原先的ibd拷贝到mysql的data对应的库下(cp ${back_dir}/${tables_list[table]}.ibd ${mysql_dir}/wuj/)
#    添加用户权限(chown -R ${user}.${user} ${mysql_dir}/wuj/)
#    通过"ALTER TABLE IMPORT TABLESPACE;"命令恢复表空间
#    完成

    shell文件

如下:

#!/bin/bash
base_dir=$(cd `dirname $0`; pwd)
user='mysql'
sql_e="mysql -N -uroot -p123456"
echo "$sql_e"
mysql_dir='/mnt/mysql/mysql57/data'
#需要恢复的库名:wuj
back_dir='/mnt/mysql/bk/wuj'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值