mysql 5.6版本分区表有一个文件:表名.par, 该文件在5.7.6版本后被移除。
在一个现场环境中,客户端执行check table后报错如下,源码跟踪下来之后是缺失par文件。
mysql解析par文件的调用堆栈如下:
(gdb) bt
#0 ha_partition::read_par_file (this=0x7fff980aa760, name=0x7fff98098be0 "./envision/tbl_pointvalue_10m") at /home/windos/mysql-5.6.41/sql/ha_partition.cc:2816:最终解析.par文件的函数,par文件具体格式见后文
#1 0x0000000000e3c595 in ha_partition::get_from_handler_file (this=0x7fff980aa760, name=0x7fff98098be0 "./envision/tbl_pointvalue_10m", mem_root=0x7fff980988c8, is_clone=false) at /home/windos/mysql-5.6.41/sql/ha_partition.cc:2968
#2 0x0000000000e36636 in ha_partition::initialize_partition (this=0x7fff980aa760, mem_root=0x7fff980988c8) at /home/windos/my