操作步聚:
use product_manager;
show tables; 有product这张表
desc 或 select product提示上面的错误。
在mysql的datadir目录下也有product.frm文件。尝试过一些方法来解决,但都没用,比如将product.frm放到其它数据库中,重新建表。数据库只开启了错误日记功能。请求支援,万分感谢!!!!
12 个解决方案
#1
你这个是innodb表,可见可能是ibdata1文件丢失或者损坏。 如果你是独立表空间还是可以恢复的,如果是共享表空间,则数据无法恢复喽。 查看此参数innodb_file_per_table
#2
show create table product;
看一下,如果是innodb 引擎,则说明是一楼中描述的问题,ibdata1文件故障了。
如果是myisam 则,想办法去找一下product.idx
看一下,如果是innodb 引擎,则说明是一楼中描述的问题,ibdata1文件故障了。
如果是myisam 则,想办法去找一下product.idx
#3
我的数据库版本是5.5.34,在mysql的配置文件中找不到innodb_file_per_table参数配置,请问是看这个参数来得知表空间是独立的还是共享的吗?另外,在mysql的dataidr目录中有ibdata1文件
#4
执行show create table product;命令也是提示ERROR 1146 (42S02): Table 'product_manager.product' doesn't exist这个错误,请问这是ibdata1文件故障还是myisam问题?谢谢!
#5
SHOW GLOBAL VARIABLES; 查看这个参数
#6
你确认你这张表是innodb 引擎的吗?如果是,那么其它innodb 引擎的表呢,还正常吗?
#7
执行SHOW GLOBAL VARIABLES; 命令显示innodb_file_per_table的value是OFF状态
我的数据库版本是5.5.34,在mysql的配置文件中找不到innodb_file_per_table参数配置,请问是看这个参数来得知表空间是独立的还是共享的吗?另外,在mysql的dataidr目录中有ibdata1文件
你这个是innodb表,可见可能是ibdata1文件丢失或者损坏。 如果你是独立表空间还是可以恢复的,如果是共享表空间,则数据无法恢复喽。 查看此参数innodb_file_per_table
SHOW GLOBAL VARIABLES; 查看这个参数
#8
应该是innodb引擎,我安装数据库的时候默选的就是innodb,后来没有改过。建表的时候也没有添加额外的参数。其它表都是正常的,只有product这张表的数据多一些,访问不了,春节前还是好的,回来就不行了。product这张表大概1600条记录左右。innodb_file_per_table这个参数的值是off状态,那应该就不是独立表空间了,像这种情况,这个表的数据还有救吗?
你确认你这张表是innodb 引擎的吗?如果是,那么其它innodb 引擎的表呢,还正常吗?
#9
show table status from product_manager;执行这条命令看不到损坏了的那张表,这是什么情况?
应该是innodb引擎,我安装数据库的时候默选的就是innodb,后来没有改过。建表的时候也没有添加额外的参数。其它表都是正常的,只有product这张表的数据多一些,访问不了,春节前还是好的,回来就不行了。product这张表大概1600条记录左右。innodb_file_per_table这个参数的值是off状态,那应该就不是独立表空间了,像这种情况,这个表的数据还有救吗?
你确认你这张表是innodb 引擎的吗?如果是,那么其它innodb 引擎的表呢,还正常吗?
#10
你的问题最后解决了么?
#11
我好像遇到过一次类似的问题。当时是发现这个表的一个外键约束出问题了,后来在information_schema中把那个表的外键都查出来搞了一下就好了,不过感觉这个处理的有些太野路子了。。。
#12
mysql--1146--报错
先找到数据库存放地址,即Data文件夹(复制留下来)
再用电脑管家把所有的mysql卸载
然后把mysql文件夹弄走(卸载不会清掉它,需手动,一般在C:\ProgramData下)(可删除,或剪切走,以防万一)
重新安装mysql(我用的是mysql-installer-community-5.7.13.0程序包)
如果数据库启动了先关闭它(因为版本,关闭是(net stop mysql57--在cmd中);启动是(net start mysql57--在cmd中))
然后把以前的数据库文件(自己需要的)(在Data文件夹下的,数据库名即文件夹名)复制到,新的数据库Data文件夹下(那些自带的数据库别动),
把新的Data下的那五个配置文件替换为以前老的文件(就是这五个文件auto.cnf,ib_buffer_pool,ib_logfile0,ib_logfile1,ibdata1)
重新启动数据库即可
先找到数据库存放地址,即Data文件夹(复制留下来)
再用电脑管家把所有的mysql卸载
然后把mysql文件夹弄走(卸载不会清掉它,需手动,一般在C:\ProgramData下)(可删除,或剪切走,以防万一)
重新安装mysql(我用的是mysql-installer-community-5.7.13.0程序包)
如果数据库启动了先关闭它(因为版本,关闭是(net stop mysql57--在cmd中);启动是(net start mysql57--在cmd中))
然后把以前的数据库文件(自己需要的)(在Data文件夹下的,数据库名即文件夹名)复制到,新的数据库Data文件夹下(那些自带的数据库别动),
把新的Data下的那五个配置文件替换为以前老的文件(就是这五个文件auto.cnf,ib_buffer_pool,ib_logfile0,ib_logfile1,ibdata1)
重新启动数据库即可
#1
你这个是innodb表,可见可能是ibdata1文件丢失或者损坏。 如果你是独立表空间还是可以恢复的,如果是共享表空间,则数据无法恢复喽。 查看此参数innodb_file_per_table
#2
show create table product;
看一下,如果是innodb 引擎,则说明是一楼中描述的问题,ibdata1文件故障了。
如果是myisam 则,想办法去找一下product.idx
看一下,如果是innodb 引擎,则说明是一楼中描述的问题,ibdata1文件故障了。
如果是myisam 则,想办法去找一下product.idx
#3
我的数据库版本是5.5.34,在mysql的配置文件中找不到innodb_file_per_table参数配置,请问是看这个参数来得知表空间是独立的还是共享的吗?另外,在mysql的dataidr目录中有ibdata1文件
你这个是innodb表,可见可能是ibdata1文件丢失或者损坏。 如果你是独立表空间还是可以恢复的,如果是共享表空间,则数据无法恢复喽。 查看此参数innodb_file_per_table
#4
执行show create table product;命令也是提示ERROR 1146 (42S02): Table 'product_manager.product' doesn't exist这个错误,请问这是ibdata1文件故障还是myisam问题?谢谢!
show create table product;
看一下,如果是innodb 引擎,则说明是一楼中描述的问题,ibdata1文件故障了。
如果是myisam 则,想办法去找一下product.idx
#5
我的数据库版本是5.5.34,在mysql的配置文件中找不到innodb_file_per_table参数配置,请问是看这个参数来得知表空间是独立的还是共享的吗?另外,在mysql的dataidr目录中有ibdata1文件
你这个是innodb表,可见可能是ibdata1文件丢失或者损坏。 如果你是独立表空间还是可以恢复的,如果是共享表空间,则数据无法恢复喽。 查看此参数innodb_file_per_table
SHOW GLOBAL VARIABLES; 查看这个参数
#6
你确认你这张表是innodb 引擎的吗?如果是,那么其它innodb 引擎的表呢,还正常吗?
#7
执行SHOW GLOBAL VARIABLES; 命令显示innodb_file_per_table的value是OFF状态
我的数据库版本是5.5.34,在mysql的配置文件中找不到innodb_file_per_table参数配置,请问是看这个参数来得知表空间是独立的还是共享的吗?另外,在mysql的dataidr目录中有ibdata1文件
你这个是innodb表,可见可能是ibdata1文件丢失或者损坏。 如果你是独立表空间还是可以恢复的,如果是共享表空间,则数据无法恢复喽。 查看此参数innodb_file_per_table
SHOW GLOBAL VARIABLES; 查看这个参数
#8
应该是innodb引擎,我安装数据库的时候默选的就是innodb,后来没有改过。建表的时候也没有添加额外的参数。其它表都是正常的,只有product这张表的数据多一些,访问不了,春节前还是好的,回来就不行了。product这张表大概1600条记录左右。innodb_file_per_table这个参数的值是off状态,那应该就不是独立表空间了,像这种情况,这个表的数据还有救吗?
你确认你这张表是innodb 引擎的吗?如果是,那么其它innodb 引擎的表呢,还正常吗?
#9
show table status from product_manager;执行这条命令看不到损坏了的那张表,这是什么情况?
应该是innodb引擎,我安装数据库的时候默选的就是innodb,后来没有改过。建表的时候也没有添加额外的参数。其它表都是正常的,只有product这张表的数据多一些,访问不了,春节前还是好的,回来就不行了。product这张表大概1600条记录左右。innodb_file_per_table这个参数的值是off状态,那应该就不是独立表空间了,像这种情况,这个表的数据还有救吗?
你确认你这张表是innodb 引擎的吗?如果是,那么其它innodb 引擎的表呢,还正常吗?
#10
你的问题最后解决了么?
#11
我好像遇到过一次类似的问题。当时是发现这个表的一个外键约束出问题了,后来在information_schema中把那个表的外键都查出来搞了一下就好了,不过感觉这个处理的有些太野路子了。。。
#12
mysql--1146--报错
先找到数据库存放地址,即Data文件夹(复制留下来)
再用电脑管家把所有的mysql卸载
然后把mysql文件夹弄走(卸载不会清掉它,需手动,一般在C:\ProgramData下)(可删除,或剪切走,以防万一)
重新安装mysql(我用的是mysql-installer-community-5.7.13.0程序包)
如果数据库启动了先关闭它(因为版本,关闭是(net stop mysql57--在cmd中);启动是(net start mysql57--在cmd中))
然后把以前的数据库文件(自己需要的)(在Data文件夹下的,数据库名即文件夹名)复制到,新的数据库Data文件夹下(那些自带的数据库别动),
把新的Data下的那五个配置文件替换为以前老的文件(就是这五个文件auto.cnf,ib_buffer_pool,ib_logfile0,ib_logfile1,ibdata1)
重新启动数据库即可
先找到数据库存放地址,即Data文件夹(复制留下来)
再用电脑管家把所有的mysql卸载
然后把mysql文件夹弄走(卸载不会清掉它,需手动,一般在C:\ProgramData下)(可删除,或剪切走,以防万一)
重新安装mysql(我用的是mysql-installer-community-5.7.13.0程序包)
如果数据库启动了先关闭它(因为版本,关闭是(net stop mysql57--在cmd中);启动是(net start mysql57--在cmd中))
然后把以前的数据库文件(自己需要的)(在Data文件夹下的,数据库名即文件夹名)复制到,新的数据库Data文件夹下(那些自带的数据库别动),
把新的Data下的那五个配置文件替换为以前老的文件(就是这五个文件auto.cnf,ib_buffer_pool,ib_logfile0,ib_logfile1,ibdata1)
重新启动数据库即可