Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

大佬,求问,感谢 #53

Closed
Tiangewang0524 opened this issue Mar 19, 2025 · 5 comments
Closed

大佬,求问,感谢 #53

Tiangewang0524 opened this issue Mar 19, 2025 · 5 comments

Comments

@Tiangewang0524
Copy link

小弟是个新手,先前服务器上的mysql不明原因无法启动,试了很多办法无济于事,无奈只能重装。手头仅有数个.ibd文件想恢复数据表,在尝试'ALTER TABLE table DISCARD TABLESPACE'+‘ALTER TABLE table IMPORT TABLESPACE’这种方法报错失败后,通过google查到大佬的ibd2sql,想到可以提取表结构建空表,然后将ibd转成sql后重新插表恢复数据,遂尝试。试了一个ibd成功了提取了几十万条insert语句后,再试第二个ibd就不行了,python main.py 2012_table.ibd --sql > 2012_table.sql 不报错同时生成的.sql为0kb,不知是何原因?可以提取ddl,但是不能像第一个ibd那样提取到几十万条insert语句

@ddcw
Copy link
Owner

ddcw commented Mar 20, 2025

你先确认下2012_table.ibd 的文件大小,
如果只有112KB的话, 大概率是没得数据的,
如果更大一点, 可能有数据但是被delete了, 可以加上--delete试下.

小弟是个新手,先前服务器上的mysql不明原因无法启动,试了很多办法无济于事,无奈只能重装。手头仅有数个.ibd文件想恢复数据表,在尝试'ALTER TABLE table DISCARD TABLESPACE'+‘ALTER TABLE table IMPORT TABLESPACE’这种方法报错失败后,通过google查到大佬的ibd2sql,想到可以提取表结构建空表,然后将ibd转成sql后重新插表恢复数据,遂尝试。试了一个ibd成功了提取了几十万条insert语句后,再试第二个ibd就不行了,python main.py 2012_table.ibd --sql > 2012_table.sql 不报错同时生成的.sql为0kb,不知是何原因?可以提取ddl,但是不能像第一个ibd那样提取到几十万条insert语句

@Tiangewang0524
Copy link
Author

你先确认下2012_table.ibd 的文件大小, 如果只有112KB的话, 大概率是没得数据的, 如果更大一点, 可能有数据但是被delete了, 可以加上--delete试下.

小弟是个新手,先前服务器上的mysql不明原因无法启动,试了很多办法无济于事,无奈只能重装。手头仅有数个.ibd文件想恢复数据表,在尝试'ALTER TABLE table DISCARD TABLESPACE'+‘ALTER TABLE table IMPORT TABLESPACE’这种方法报错失败后,通过google查到大佬的ibd2sql,想到可以提取表结构建空表,然后将ibd转成sql后重新插表恢复数据,遂尝试。试了一个ibd成功了提取了几十万条insert语句后,再试第二个ibd就不行了,python main.py 2012_table.ibd --sql > 2012_table.sql 不报错同时生成的.sql为0kb,不知是何原因?可以提取ddl,但是不能像第一个ibd那样提取到几十万条insert语句

感谢大佬回复!已尝试,加上--delete还是不行,2012_table.ibd有6个多G,应该是有数据的。换了其他年份的表又可以提取insert了,不知道什么原因,这几个表当初建表、设字段名和类型、插表等等操作都差不太多的

@ddcw
Copy link
Owner

ddcw commented Mar 20, 2025

这么神奇, 麻烦提供下如下信息呢:

  1. mysql的版本信息
  2. ibd2sql的版本信息
  3. 方便的话,可以提供下DDL, (脱敏之后的信息即可)
  4. 如果是8.0 则提供下row format信息: 使用 ibd2sdi 2012_table.ibd | grep row_format
  5. 提供下debug信息,注意:这个信息可能较多 python3 main.py 2012_table.ibd --ddl --sql --debug
  6. 如果可能的话, 能提供下ibd文件更好(注意数据安全!!!)

你先确认下2012_table.ibd 的文件大小, 如果只有112KB的话, 大概率是没得数据的, 如果更大一点, 可能有数据但是被delete了, 可以加上--delete试下.

小弟是个新手,先前服务器上的mysql不明原因无法启动,试了很多办法无济于事,无奈只能重装。手头仅有数个.ibd文件想恢复数据表,在尝试'ALTER TABLE table DISCARD TABLESPACE'+‘ALTER TABLE table IMPORT TABLESPACE’这种方法报错失败后,通过google查到大佬的ibd2sql,想到可以提取表结构建空表,然后将ibd转成sql后重新插表恢复数据,遂尝试。试了一个ibd成功了提取了几十万条insert语句后,再试第二个ibd就不行了,python main.py 2012_table.ibd --sql > 2012_table.sql 不报错同时生成的.sql为0kb,不知是何原因?可以提取ddl,但是不能像第一个ibd那样提取到几十万条insert语句

感谢大佬回复!已尝试,加上--delete还是不行,2012_table.ibd有6个多G,应该是有数据的。换了其他年份的表又可以提取insert了,不知道什么原因,这几个表当初建表、设字段名和类型、插表等等操作都差不太多的

@Tiangewang0524
Copy link
Author

这么神奇, 麻烦提供下如下信息呢:

  1. mysql的版本信息
  2. ibd2sql的版本信息
  3. 方便的话,可以提供下DDL, (脱敏之后的信息即可)
  4. 如果是8.0 则提供下row format信息: 使用 ibd2sdi 2012_table.ibd | grep row_format
  5. 提供下debug信息,注意:这个信息可能较多 python3 main.py 2012_table.ibd --ddl --sql --debug
  6. 如果可能的话, 能提供下ibd文件更好(注意数据安全!!!)

你先确认下2012_table.ibd 的文件大小, 如果只有112KB的话, 大概率是没得数据的, 如果更大一点, 可能有数据但是被delete了, 可以加上--delete试下.

小弟是个新手,先前服务器上的mysql不明原因无法启动,试了很多办法无济于事,无奈只能重装。手头仅有数个.ibd文件想恢复数据表,在尝试'ALTER TABLE table DISCARD TABLESPACE'+‘ALTER TABLE table IMPORT TABLESPACE’这种方法报错失败后,通过google查到大佬的ibd2sql,想到可以提取表结构建空表,然后将ibd转成sql后重新插表恢复数据,遂尝试。试了一个ibd成功了提取了几十万条insert语句后,再试第二个ibd就不行了,python main.py 2012_table.ibd --sql > 2012_table.sql 不报错同时生成的.sql为0kb,不知是何原因?可以提取ddl,但是不能像第一个ibd那样提取到几十万条insert语句

感谢大佬回复!已尝试,加上--delete还是不行,2012_table.ibd有6个多G,应该是有数据的。换了其他年份的表又可以提取insert了,不知道什么原因,这几个表当初建表、设字段名和类型、插表等等操作都差不太多的

感谢大佬!我等会吃个饭b站私聊你吧大佬,多有打扰!

@Tiangewang0524
Copy link
Author

这么神奇, 麻烦提供下如下信息呢:

  1. mysql的版本信息
  2. ibd2sql的版本信息
  3. 方便的话,可以提供下DDL, (脱敏之后的信息即可)
  4. 如果是8.0 则提供下row format信息: 使用 ibd2sdi 2012_table.ibd | grep row_format
  5. 提供下debug信息,注意:这个信息可能较多 python3 main.py 2012_table.ibd --ddl --sql --debug
  6. 如果可能的话, 能提供下ibd文件更好(注意数据安全!!!)

你先确认下2012_table.ibd 的文件大小, 如果只有112KB的话, 大概率是没得数据的, 如果更大一点, 可能有数据但是被delete了, 可以加上--delete试下.

小弟是个新手,先前服务器上的mysql不明原因无法启动,试了很多办法无济于事,无奈只能重装。手头仅有数个.ibd文件想恢复数据表,在尝试'ALTER TABLE table DISCARD TABLESPACE'+‘ALTER TABLE table IMPORT TABLESPACE’这种方法报错失败后,通过google查到大佬的ibd2sql,想到可以提取表结构建空表,然后将ibd转成sql后重新插表恢复数据,遂尝试。试了一个ibd成功了提取了几十万条insert语句后,再试第二个ibd就不行了,python main.py 2012_table.ibd --sql > 2012_table.sql 不报错同时生成的.sql为0kb,不知是何原因?可以提取ddl,但是不能像第一个ibd那样提取到几十万条insert语句

感谢大佬回复!已尝试,加上--delete还是不行,2012_table.ibd有6个多G,应该是有数据的。换了其他年份的表又可以提取insert了,不知道什么原因,这几个表当初建表、设字段名和类型、插表等等操作都差不太多的

大佬,b站私信麻烦回我个1,不然没法发消息了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants