系统环境Windows 2016 SVR,解决MySQL 5.6.41官网压缩下载版出现innodb表无法打开得问题

在Windows Server 2016上,MySQL 5.6.41遇到innodb表无法打开的问题。日志显示innodb_index_stats等五个表存在警告。解决方案包括下载替换文件,删除旧文件,导入新文件并运行mysql_upgrade进行修复。通过执行SQL命令和检查数据目录,成功解决了错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

apache web服务器环境,mysql官方网站下载解压版,系统环境为Windows svr 2016 64位,解压到相应得环境目录后,配置好my.ini文件。

在windows系统得事件查看器中能看到相应得警告信息,在mysql得日志文件中也能看到相应得警告信息,建议使用mysql日志文件中得信息,会得到如下信息:

2018-08-03 10:55:09 10648 [Warning] InnoDB: Cannot open table mysql/slave_master_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
2018-08-03 10:55:09 10648 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
2018-08-03 10:55:09 10648 [Warning] InnoDB: Cannot open table mysql/slave_worker_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
2018-08-03 10:55:09 10648 [Warning] InnoDB: Cannot open table mysql/slave_relay_log_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
2018-08-03 10:55:09 10648 [Warning] Info table is not ready to be used. Table 'mysql.slave_relay_log_info' cannot be opened.

出问题得5个表分别是:

     innodb_index_stats
     innodb_table_stats
     slave_master_info
     slave_relay_log_info
     slave_worker_info

可能提示得是无法打开或者无法找到,其实都是一样得,都是BUG引起得,版本不同,描述可能不一样。

在MySQL论坛(67179)中报告了这个错误,下载替代文件提到了解决方案。这是国外一个论坛提供得解决方案,按照这个方案调整之后,windows系统下mysql日志没有再出现警告信息。

百度搜索相关问题,国内论坛给出得方案基本都相同,完全是复制,而且基本都是基于linux系统调整得,一些路径和恢复文件得方式和windows系统也完全不一样,基本上解决不了windows中得问题。

百度除了自家得知道,贴吧等等垃圾之外,基本很难搜到非常有帮助得信息,很是浪费时间,有条件得同学可以使用google,命中率还是非常高得,没条件得也可以使用bing.com国际版,总之比百度好用!

解决方案就是下载新得文件,然后导入文件,其中需要注意得是:

一定删除mysql安装路径中得相应文件,包括.frm & .ibd扩展名得关联文件,否则会提示你:

ERROR 1813 (HY000) at line 63: Tablespace for table '`mysql`.`innodb_table_stats`' exists. Please DISCARD the tablespace before IMPORT.
ERROR 1813 (HY000) at line 67: Tablespace for table '`mysql`.`innodb_index_stats`' exists. Please DISCARD the tablespace before IMPORT.
ERROR 1813 (HY000) at line 82: Tablespace for table '`mysql`.`slave_relay_log_info`' exists. Please DISCARD the tablespace before IMPORT.
ERROR 1813 (HY000) at line 111: Tablespace for table '`mysql`.`slave_master_info`' exists. Please DISCARD the tablespace before IMPORT.
ERROR 1813 (HY000) at line 129: Tablespace for table '`mysql`.`slave_worker_info`' exists. Please DISCARD the tablespace before IMPORT.

如果是以上得错误信息,那么找到安装目中得data文件夹,删除相应扩展名得文件即可。

drop table if exists innodb_index_stats;
drop table if exists innodb_table_stats;
drop table if exists slave_master_info;
drop table if exists slave_relay_log_info;
drop table if exists slave_worker_info;

 

查看data目录得位置,然后删除文件,目录一定要对应,否则无效。

show global variables like "%datadir%"; 

 

使用 source X:/five-tables.sql; 导入文件,提示导入成功,即表示数据表更新成功。

导入sql文件后,这5个表得文件会从新生成,show tables会显示有28个表。

最后使用mysql_upgrade -u root 指令,检测升级修复以下数据库,如果提示所有得表都是OK状态,那么问题就解决了,再次查看mysql得日志文件,发现之前得警告信息消息,只有一些打开/关闭得通知信息,至此,mysql数据表错误得修复即告完成。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值