锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 数据库开发开源社区 / mysql - Table doesn't exist in engine
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

锐英源精品开源,禁止转载和任何形式的非法内容使用,违者必究


mysql - Table doesn't exist in engine


背景

最近发布一个测试软件平台给客户,用到数据库,把mysql下面data目录下文件压缩下发给客户,让客户停止mysql服务器再启动,访问此数据库时,有一个表可以,另外表访问时报:Table doesn't exist in engine。我根据提示删除了idb文件,再重启服务,还是不行。把数据库导出成sql语句,在有问题机器上又报表在tablespace里已经存在,不能创建。真是太无奈和麻烦了。最后建议客户删除mysql目录,彻底卸载mysql,再安装使用。

在中间使用时,用mysqlworkbench报mysql版本不匹配,怀疑是环境造成的问题。不过一般用压缩文件发布mysql,不是正规的办法,用脚本确实好一些。

第二天,想到用mysqlworkbench提供的DataImport功能来导入,尝试后报Please DISCARD the tablespace before IMPORT错误,先mysql服务停掉,删除目标数据库目录下文件,再启动服务,再导入,则成功,运行软件也不报mysql - Table doesn't exist in engine问题了。

总结

文件拷贝发布数据库不行,用脚本;脚本直接执行不可以,用DataImport。用网上说的直接解决mysql - Table doesn't exist in engine是很麻烦的,要能另辟蹊径找思路来解决。

下面翻译些线索给大家,共同提高。

线索1

SELECT support FROM information_schema.engines WHERE engine='InnoDB'

线索2

在xampp update/reinstall后,InnoDB空间损坏了。

权限线索

mysql对目录权限要求为0700 (-RWX------),对文件权限要求为:0660 (-RW-RW----)。操作示例:bash> find /Applications/XAMPP/xamppfiles/var/mysql -type d -exec chmod 0700 {} \;
bash> find /Applications/XAMPP/xamppfiles/var/mysql -type f -exec chmod 0660 {} \;

重置所有者和组,bash> chown -R mysql mysql /Applications/XAMPP/xamppfiles/var/mysql

系统表线索

用下面命令检查mysql系统表:select table_name from information_schema.tables where table_name='mytable';或改表引擎:alter table mytable engine=innodb;

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件

公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768

地址:郑州大学北校区院内(文化路97号院)