mysql生成数据字典

Posted 刚好遇见Mysql

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql生成数据字典相关的知识,希望对你有一定的参考价值。

git clone https://github.com/twindb/undrop-for-innodb.git

make

技术分享图片
[[email protected] undrop-for-innodb]# make
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe -I./include -c stream_parser.c
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe -I./include  -pthread -lm  stream_parser.o -o stream_parser
flex  sql_parser.l
sql_parser.l:66: warning, the character range [
                                               -Y] is ambiguous in a case-insensitive scanner
sql_parser.l:66: warning, the character range [a] is ambiguous in a case-insensitive scanner
bison  -o sql_parser.c sql_parser.y
sql_parser.y: conflicts: 6 shift/reduce
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe -I./include -c sql_parser.c
lex.yy.c:3430: warning: ‘yyunput’ defined but not used
lex.yy.c:3471: warning: ‘input’ defined but not used
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe -I./include -c c_parser.c
./include/ctype-latin1.c:359: warning: ‘my_mb_wc_latin1’ defined but not used
./include/ctype-latin1.c:372: warning: ‘my_wc_mb_latin1’ defined but not used
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe -I./include -c tables_dict.c
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe -I./include -c print_data.c
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe -I./include -c check_data.c
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe  -I./include  sql_parser.o c_parser.o tables_dict.o print_data.o check_data.o -o c_parser -pthread -lm
cc -D_FILE_OFFSET_BITS=64 -Wall -g -O3 -pipe  -I./include -o innochecksum_changer innochecksum.c
View Code

创建恢复数据库

create database recovery;

抽取数据字典

create database recovery;
./stream_parser -f /data/mysql//ibdata1
 mkdir -p dumps/default
 ./c_parser -6f pages-ibdata1/FIL_PAGE_INDEX/0000000000000001.page -t dictionary/SYS_TABLES.sql > dumps/default/SYS_TABLES 2> dumps/default/SYS_TABLES.sql
 ./c_parser -6f pages-ibdata1/FIL_PAGE_INDEX/0000000000000003.page -t dictionary/SYS_INDEXES.sql > dumps/default/SYS_INDEXES 2> dumps/default/SYS_INDEXES.sql
 加载数据
 mysql -u root -p recovery < dictionary/SYS_TABLES.sql
 mysql -u root -p recovery < dictionary/SYS_INDEXES.sql
 mysql -u root -p recovery < dumps/default/SYS_TABLES.sql
 mysql -u root -p recovery < dumps/default/SYS_INDEXES.sql

  

查看数据信息

mysql> select * from SYS_TABLES where name like %tb%;
+-------+----+--------+------+--------+---------+--------------+-------+
| NAME  | ID | N_COLS | TYPE | MIX_ID | MIX_LEN | CLUSTER_NAME | SPACE |
+-------+----+--------+------+--------+---------+--------------+-------+
| ht/tb | 40 |      2 |   33 |      0 |      80 |              |    23 |
+-------+----+--------+------+--------+---------+--------------+-------+
1 row in set (0.00 sec)
mysql> select * from SYS_INDEXES where table_id=40;
+----------+----+---------+----------+------+-------+---------+
| TABLE_ID | ID | NAME    | N_FIELDS | TYPE | SPACE | PAGE_NO |
+----------+----+---------+----------+------+-------+---------+
|       40 | 41 | PRIMARY |        1 |    3 |    23 |       3 |
+----------+----+---------+----------+------+-------+---------+
1 row in set (0.00 sec)

 

以上是关于mysql生成数据字典的主要内容,如果未能解决你的问题,请参考以下文章

PHP生成MySQL数据字典

0203 生成mysql的数据库的数据字典

mysql生成数据字典

mysql数据字典 如何生成?

mysql字符串转换成字典

MySQL导出数据字典