共计 1819 个字符,预计需要花费 5 分钟才能阅读完成。
本篇内容主要讲解“怎么解决 Mysql 数据库提示 innodb 表不存在的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么解决 Mysql 数据库提示 innodb 表不存在的问题”吧!
发现 mysql 的 error.log 里面有报错:
InnoDB: Error: Table mysql . innodb_table_stats not found.
InnoDB: Error: Fetch of persistent statistics requested for table hj_web . wechat_res but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats instead.
那么需重新构建 mysql 这个 databases 的 5 个表:
步骤:
1、登录数据库,进入 mysql 库,执行如下 SQL 删除 5 张表
记住,一定要是 drop table if exists
mysql use mysql;
mysql drop table if exists innodb_index_stats;
mysql drop table if exists innodb_table_stats;
mysql drop table if exists slave_master_info;
mysql drop table if exists slave_relay_log_info;
mysql drop table if exists slave_worker_info;
执行完后,可以用 show tables 查看一下,看表的数据是否已经比删除之前减少了,如果减少了,说明你成功了!
2、上一步操作完成后,停止数据库,并进入到数据库数据文件所在目录,删除上面 5 个表所对应的 idb 文件,如下所示:
# /etc/init.d/mysqld stop
# cd /data/mysql/data/mysql/
# ls -l *.ibd
-rw-rw---- 1 mysql mysql 98304 May 27 14:17 innodb_index_stats.ibd
-rw-rw---- 1 mysql mysql 98304 May 27 14:17 innodb_table_stats.ibd
-rw-rw---- 1 mysql mysql 98304 May 27 14:14 slave_master_info.ibd
-rw-rw---- 1 mysql mysql 98304 May 27 14:14 slave_relay_log_info.ibd
-rw-rw---- 1 mysql mysql 98304 May 27 14:14 slave_worker_info.ibd
# /bin/rm -rf *.ibd
3、重新启动数据库,进入到 mysql 库,重建上面被删除的表结构:
数据库的建表脚本在 mysql 软件的安装目录的 share 目录下或者 mysql 的安装包的 script 目录下,我们这里可以 find 一下:
# find / -name mysql_system_tables.sql
/usr/local/mysql-5.6.29/scripts/mysql_system_tables.sql
# /etc/init.d/mysqld start
mysql use mysql;
mysql source /usr/local/mysql-5.6.29/scripts/mysql_system_tables.sql
mysql show tables;
28 rows in set (0.00 sec)
再随便 desc 下 5 个的其中一倆个表看看:
mysql desc innodb_table_stats;
mysql desc slave_master_info;
最后再查看 mysql 的 error.log 日志,
确认没有新的报错之后,就表示成功。
到此,相信大家对“怎么解决 Mysql 数据库提示 innodb 表不存在的问题”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!