Skip to content

Commit

Permalink
🐛 fix: Username in docker images
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 1a005f1 commit 67c4f76
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 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/mhkarimi1383/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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Other steps are like previous section

## With Docker

Bring up a container with both new and old data available (with connection access to new db) with image: `ghcr.io/mhkarimi1383/mysql_idb:mysql-8.4` (change mysql version if needed)
Bring up a container with both new and old data available (with connection access to new db) with image: `ghcr.io/anyongjin/mysql_idb:mysql-8.4` (change mysql version if needed)

Other steps are like previous section

Expand Down
2 changes: 1 addition & 1 deletion k8s-sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ spec:
spec:
containers:
# Change image if needed
- image: ghcr.io/mhkarimi1383/mysql_idb:mysql-8.4
- image: ghcr.io/anyongjin/mysql_idb:mysql-8.4
imagePullPolicy: IfNotPresent
name: mysql-idb
resources:
Expand Down

0 comments on commit 67c4f76

Please sign in to comment.