MYSQL 通过存储文件还原数据库

1.MyISAM

数据引擎问MyISAM可以直接通过文件进行还原

1.1:创建新的数据库

1.2:停止mysql服务器(service mysql stop)

1.3:将.frm,.MYD,.MYI文件拷到数据库存储地址,该数据库下面

 1.4:将文件的用户和用户组修改为mysql (chown -R mysql:mysql /mysql/data/test   /mysql/data/test 为数据库存储地址)

1.5:修改文件的权限,让文件拥有读和写入的权限

1.6:重启mysql服务器(service mysql start)

2.InnoDB

Innodb 文件分为.ibd和.frm文件

.ibd文件主要是用于存储数据和索引

.frm文件主要是用于存储元数据(包括表结构)

1.1:创建新的数据库

1.2:建立相同的表(表字段不用一样)

1.3:停止mysql服务器(service mysql stop)

1.4:导入.frm文件,修改文件用户和用户组,以及文件权限

1.4:找回表结构,需要用.frm文件找回表结构,修改/添加my.ini配置文件中的innodb_force_recovery = 6(进入到恢复模式),启动mysql服务

1.5:修改my.ini中 innodb_force_recovery = 1

注意:1.2,1.3,1.4,1.,5主要是为了找回表结构,如果有表结构 可以直接导入表结构无需操作1.2,1.3,1.4,1.5

1.6:表结构恢复后,需要删除表空间

单一表空间删除:ALTER TABLE <table_name> DISCARD TABLESPACE;

批量删除表空间:select CONCAT('ALTER TABLE ',table_name,' DISCARD TABLESPACE;') from information_schema.TABLES where TABLE_SCHEMA = 'smt' and ENGINE = "InnoDB",复制查询结果,在执行查询结果

1.7:将.ibd文件复制到数据库表中的储存位置,修改文件的用户和用户组为mysql(chown -R mysql:mysql /mysql/data/test)

1.8:导入表空间

单一导入:ALTER TABLE <table_name> IMPORT TABLESPACE;

批量导入:select CONCAT('ALTER TABLE ',table_name,' IMPORT TABLESPACE;') from information_schema.TABLES where TABLE_SCHEMA = 'smt' and ENGINE = "InnoDB",复制查询结果,在执行查询结果

总结:该种数据库恢复的方式最好采用同一个板的数据库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 MySQL 8.0 数据库备份和还原脚本,您可以根据自己的需求进行修改: 备份脚本: ``` #!/bin/bash # MySQL backup script # MySQL credentials user="username" password="password" host="localhost" db_name="database_name" # Other options backup_path="/path/to/backup/folder" date=$(date +"%d-%b-%Y") # Backup filename filename="$db_name-$date.sql" # Backup command mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$filename # Compression command gzip $backup_path/$filename ``` 还原脚本: ``` #!/bin/bash # MySQL restore script # MySQL credentials user="username" password="password" host="localhost" db_name="database_name" # Other options backup_path="/path/to/backup/folder" filename="$db_name-$date.sql.gz" # Decompression command gunzip $backup_path/$filename # Restore command mysql --user=$user --password=$password --host=$host $db_name < $backup_path/$db_name-$date.sql ``` 在备份脚本中,您需要将 `username`、`password`、`host` 和 `database_name` 替换为您的 MySQL 访问凭据和数据库名称。`backup_path` 变量指定备份文件应该存储在哪个文件夹中,`date` 变量用于生成备份文件名。 在还原脚本中,您需要使用与备份脚本相同的 `username`、`password`、`host` 和 `database_name` 值。`backup_path` 变量应该与备份脚本中的相同。`filename` 变量包含备份文件名,它必须与备份脚本中的相同。 请注意,这些脚本仅是示例,不适用于所有情况。在实际使用之前,请测试并根据需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值