#前提是表结构是存在的
#根据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'