Skip to content

Commit

Permalink
🐛 fix: Revert removed spaces from README again
Browse files Browse the repository at this point in the history
Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
  • Loading branch information
mhkarimi1383 committed Jul 31, 2024
1 parent 67c4f76 commit a2d40a0
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions README.CN.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 说明
这是一个用于从mysql的ibd文件导入数据库表的脚本,针对innodb存储引擎。
如果您的数据表使用的是MyISAM引擎,请移步[mysql文档](https://dev.mysql.com/doc/refman/8.0/en/import-table.html),使用`import table from`从frm和MYD文件恢复表数据。
这是一个用于从mysql的ibd文件导入数据库表的脚本,针对innodb存储引擎。
如果您的数据表使用的是MyISAM引擎,请移步[mysql文档](https://dev.mysql.com/doc/refman/8.0/en/import-table.html),使用`import table from`从frm和MYD文件恢复表数据。
对于innodb引擎,在mysql8以前的版本下,每个表在数据目录下有frm文件和ibd文件,前者是表结构,后者是表数据。
从mysql8开始,表的结构信息等元数据通过sdi保存,sdi嵌入到ibd文件里面。所以一个表只对应一个数据文件。
从mysql8开始,表的结构信息等元数据通过sdi保存,sdi嵌入到ibd文件里面。所以一个表只对应一个数据文件。

对于mysql8之前版本有frm文件的情况,mysql提供了`mysqlfrm`工具可以从frm生成建表语句。
但对于mysql8之后版本,只提供了`ibd2sdi`工具从ibd文件生成sdi文件(JSON形式的表结构),不能直接生成sql语句。
Expand All @@ -23,7 +23,7 @@
3. 安装依赖:`pip install requirements.txt`

## docker安装
使用镜像:`ghcr.io/anyongjin/mysql_idb:mysql-8.4`(可根据需要更改mysql版本)
使用镜像:`ghcr.io/anyongjin/mysql_idb:mysql-8.4`(可根据需要更改mysql版本)
也可从`Dockerfile`构建镜像并使用

## k8s中使用
Expand All @@ -46,11 +46,11 @@
5. 执行`python main.py load_data`从ibd文件批量导入数据到数据库(请在数据库服务器上运行)

# 相关问题
**Schema mismatch (Clustered index validation failed. Because the .cfg file is missing, table definition of the IBD file could be different. Or the data file itself is already corrupted.)**
**Schema mismatch (Clustered index validation failed. Because the .cfg file is missing, table definition of the IBD file could be different. Or the data file itself is already corrupted.)**
在mysql8之后的ibd导入时,偶尔会出现这个错误。使用`ibd2sdi`工具从新表生成sdi,对比新旧的sdi文件,基本都是一样的。issues中有朋友提到可能是生成的sql和原始sql有差异导致表结构信息不完全匹配,他通过将定义主键和索引的语句从`INDEX`改为`KEY`解决了,可能也有其他错误情况,可作为一个方向:[#14](/../../issues/14)

**自增起始值问题**
从ibd文件导入数据后,表的自增列的起始值依然是0,在插入新数据的时候会报错,可使用下面命令手动查询恢复:
**自增起始值问题**
从ibd文件导入数据后,表的自增列的起始值依然是0,在插入新数据的时候会报错,可使用下面命令手动查询恢复:
```sql
select max(id) from `mytable`;
ALTER TABLE `mytable` AUTO_INCREMENT=val+1
Expand Down

0 comments on commit a2d40a0

Please sign in to comment.