本篇内容主要讲解“如何解决mysql 1146错误问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决mysql 1146错误问题”吧!

mysql 1146错误的解决办法:1、拷贝原来mysql安装目录data里的ibdata1;2、检查ibdata文件所属的用户和用户组是否正确;3、使用“repair table tablename”修复表即可。

本文操作环境:Windows7系统、Mysql5.7版、Dell G3电脑。

怎么解决mysql 1146错误问题?

mysql 提示表不存在的解决方法error: 1146: Table doesn‘t exist

直接拷贝数据库导致提示表不存在的解决方法

电脑重装系统后把原来的mysql data复制进去后大部分表是可以访问的,但是有几个表提示表不存在:

error:1146:Table'your_table'doesn'texist

这种情况就是要把原来mysql安装目录data里的 ibdata1 也要拷贝过去
INNODB是MYSQL数据库一种流行的数据库引擎,支持事务(行级),在企业级应用上成为可能。
ibdata用来储存文件的数据,而库名的文件夹里面的那些表文件只是结构而已,由于新版的mysql默认试innodb,所以ibdata1文件默认就存在了,少了这个文件有的数据表就会出错。

如果替换ibdata文件后发现启动报错

[root@localhostdata]#servicemysqlstartRedirectingto/bin/systemctlstartmysql.serviceJobformysqld.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusmysqld.service"and"journalctl-xe"fordetails.

[root@localhostdata]#systemctlstatusmysqld.service●mysqld.service-LSB:startandstopMySQLLoaded:loaded(/etc/rc.d/init.d/mysqld;bad;vendorpreset:disabled)Active:failed(Result:exit-code)sinceTue2019-01-0818:12:43CST;8sagoDocs:man:systemd-sysv-generator(8)Process:11815ExecStop=/etc/rc.d/init.d/mysqldstop(code=exited,status=0/SUCCESS)Process:13300ExecStart=/etc/rc.d/init.d/mysqldstart(code=exited,status=1/FAILURE)Jan0818:12:40localhost.localdomainsystemd[1]:StartingLSB:startandstopMySQL...Jan0818:12:43localhost.localdomainmysqld[13300]:StartingMySQL...ERROR!TheserverquitwithoutupdatingPIDfile(/www/server/data/localhost.localdomain.pid).Jan0818:12:43localhost.localdomainsystemd[1]:mysqld.service:controlprocessexited,code=exitedstatus=1Jan0818:12:43localhost.localdomainsystemd[1]:FailedtostartLSB:startandstopMySQL.Jan0818:12:43localhost.localdomainsystemd[1]:Unitmysqld.serviceenteredfailedstate.Jan0818:12:43localhost.localdomainsystemd[1]:mysqld.servicefailed.

这时候先检查一下你的ibdata文件所属的用户和用户组是否正确,有可能是权限问题导致。

如果是数据表损坏请尝试修复表

到此,相信大家对“如何解决mysql 1146错误问题”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!