我用的是linux版的xampp。本来是好的,不过由于今天突然断电,机子重启后,在mysql中执行select语句就遇到这个错误,show engines,发觉只有7条记录,缺少了InnoDB这条记录。再show variables like "have_%",看到have_innodb的value是no。再看my.cnf,skip-innodb那行是注释掉的,文件设置也是对的。
请问这种情况,我是不是只能重装xampp了,有没有什么办法不用重装这个软件?
谢谢。
25 个解决方案
#1
检查MYSQL的错误日志。
#2
1. 看看错误日志
2. 看看my.cnf中有什么实质的相关内容
2. 看看my.cnf中有什么实质的相关内容
#3
估计是ib_logfile文件坏了 如果没备份要悲剧了
#4
请问linux版xampp的mysql的错误日志在哪啊?我怎么找不到。
#5
#6
啊,非常谢谢。找到了mysql的错误日志。我重启后,错误日至说明如下:
101210 13:17:21 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 13:17:21 InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
.....
101210 13:17:21 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 13:17:21 InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
.....
#7
哦,解决了,删掉ibdata1、ib_logfile0、ib_logfile1就好了。
可又出新问题了,我在数据库里,show tables,看到这个那些表,可就是执行select,不让我访问,说这个表不存在。。。。。不会数据库坏了吧?
可又出新问题了,我在数据库里,show tables,看到这个那些表,可就是执行select,不让我访问,说这个表不存在。。。。。不会数据库坏了吧?
#8
你把IBDATA1都给删除了,INNODB的数据就全没有了。自然这些表就不存在了。
INNODB和MYISAM存储引擎不一样,它的数据是放在IBDATA中的。
INNODB和MYISAM存储引擎不一样,它的数据是放在IBDATA中的。
#9
删到是没删,我只是改了个名。我还是可以再改回去的。可是我不把ibdata1删掉,它就会报InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
那我那些表还是访问不了啊。
那我那些表还是访问不了啊。
#10
做好备份。
然后在MY。INI文件中添加参数 innodb_force_recovery=1
试试,不行就加大这个数字,最大可以加到6.
提醒: 做好备份。
然后在MY。INI文件中添加参数 innodb_force_recovery=1
试试,不行就加大这个数字,最大可以加到6.
提醒: 做好备份。
#11
那我还要把ibdata1还原成原先那个吗?
这个备份是做哪个备份?数据库表?还是mysql的系统文件啊?
这个备份是做哪个备份?数据库表?还是mysql的系统文件啊?
#12
那就备份整个目录,全备了。
#13
我加了那个参数,现在加到2,还是说Table 'XXX.XXX' doesn't exist
我看了下mysql的错误日志,也还是说
cannot find or open table XXX/XXX from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe ......
改这个数字是不是没有用阿?
我如果把ibdata1恢复成以前的那个文件,innodb又启不起来。。。。
我看了下mysql的错误日志,也还是说
cannot find or open table XXX/XXX from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe ......
改这个数字是不是没有用阿?
我如果把ibdata1恢复成以前的那个文件,innodb又启不起来。。。。
#14
把ibdata1恢复成以前的那个文件
然后逐步加这个innodb_force_recovery=1
然后逐步加这个innodb_force_recovery=1
#15
用以前的还是不行,我把值改到4,报的错都是一样的。
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 15:17:41 InnoDB: Unable to open the first data file
InnoDB: Error in opening /opt/lampp/var/mysql/ibdata1
101210 15:17:41 InnoDB: Operating system error number 11 in a file operation.
InnoDB: Error number 11 means 'Resource temporarily unavailable'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.htmlInnoDB: Could not open or create data files.
InnoDB: If you tried to add new data files, and it failed here,
InnoDB: you should now edit innodb_data_file_path in my.cnf back
InnoDB: to what it was, and remove the new ibdata files InnoDB created
InnoDB: in this failed attempt. InnoDB only wrote those files full of
InnoDB: zeros, but did not yet use them in any way. But be careful: do not
InnoDB: remove old data files which contain your precious data!
101210 15:17:41 [ERROR] Plugin 'InnoDB' init function returned error.
101210 15:17:41 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.101210 15:17:41 [Note] PrimeBase XT (PBXT) Engine 1.0.08 RC loaded...
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 15:17:41 InnoDB: Unable to open the first data file
InnoDB: Error in opening /opt/lampp/var/mysql/ibdata1
101210 15:17:41 InnoDB: Operating system error number 11 in a file operation.
InnoDB: Error number 11 means 'Resource temporarily unavailable'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.htmlInnoDB: Could not open or create data files.
InnoDB: If you tried to add new data files, and it failed here,
InnoDB: you should now edit innodb_data_file_path in my.cnf back
InnoDB: to what it was, and remove the new ibdata files InnoDB created
InnoDB: in this failed attempt. InnoDB only wrote those files full of
InnoDB: zeros, but did not yet use them in any way. But be careful: do not
InnoDB: remove old data files which contain your precious data!
101210 15:17:41 [ERROR] Plugin 'InnoDB' init function returned error.
101210 15:17:41 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.101210 15:17:41 [Note] PrimeBase XT (PBXT) Engine 1.0.08 RC loaded...
#16
那这样我就有点不明白了,我把ibdata1、ib_logfile0、ib_logfile1这三个文件删了,重启mysql,系统会重新生成这三个文件,既然原innodb数据没了,这不就等于我重新安装了一个mysql吗?那我要移一个innodb数据库近来,要怎么弄呢?xampp下的mysql,每个数据库就是一个文件夹,里面有.frm .myd .myi这三种文件。
#17
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
你是不是已经有一个MYSQLD进程启动了?
InnoDB: Check that you do not already have another mysqld process
你是不是已经有一个MYSQLD进程启动了?
#18
没有啊。我每次都stop mysql的,而且我也查了。会不会是ibdata1这个文件损坏了啊?
#19
我用以前的ibdata1,在mysql里直接show engines,都没有innodb的纪录,have_innodb值都是no
#20
应该是文件有问题。一般应该试着用 innodb_force_recovery=1试着恢复一下。但显然不是100%都能恢复。
恢复的时候,你需要原来的三个文件 ibdata1, ib_logfile0、ib_logfile1
恢复的时候,你需要原来的三个文件 ibdata1, ib_logfile0、ib_logfile1
#21
那文件有问题了,是不是就没戏啦?
那三个文件我也一直没删,只是改了个名。你刚才说了以后,我就改回来,然后改innodb_force_recovery的参数,从1改到4,都报一样的错
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
而且mysql启动相当的慢。启动好后,我在mysql环境下对那个innodb数据库进行操作,都说unknown table engine 'InnoDB'。执行show engines,都没有innodb的纪录,have_innodb的值都是no。
我想既然innodb引擎都找不到,那貌似该什么值都没用了。我在网上看到有说把这三个文件删掉,innodb引擎就可以起来了,然后我就把这三个文件移走了,重启mysql,innodb的问题解决了,但现在不认数据库里的table了。
其实我这个数据库是bugzilla的数据库,数据库的建立是安装bugzilla时软件自动建的。我有用mysqldump备份数据库,是 .sql文件,我是不是source一下就可以啦?还是对于innodb型数据库,导入sql文件有别的说法啊?
我现在都不敢动了。。。。
#22
谢谢,搞定了,用了以前的ibdata1的备份文件,改宿主名为nobody:nobody,删掉ib_logfile0和1这两个文件。重启mysql,就ok了。不过这几天的记录都没了。
#23
我也碰到这问题了 也是把备份复制过去不能启动INNODB引擎 请问楼主“改宿主名为nobody:nobody”这句是什么意思
#24
一次断电引发的innodb表空间错误,引发的innodb引擎全瘫血案,看了让人心惊肉跳。
你啥mysql版本,所有innodb表空间多少G?能给我么?
ibdata1, ib_logfile0、ib_logfile1
你啥mysql版本,所有innodb表空间多少G?能给我么?
ibdata1, ib_logfile0、ib_logfile1
#25
show plugin
查看Innodb这条信息就表示安装好了。
如果没有安装成功或者是在已经安装好mysql的情况下,只要执行下面语句再安装一次就OK。
install plugin innodb soname 'ha_innodb.so' ;
查看Innodb这条信息就表示安装好了。
如果没有安装成功或者是在已经安装好mysql的情况下,只要执行下面语句再安装一次就OK。
install plugin innodb soname 'ha_innodb.so' ;
#1
检查MYSQL的错误日志。
#2
1. 看看错误日志
2. 看看my.cnf中有什么实质的相关内容
2. 看看my.cnf中有什么实质的相关内容
#3
估计是ib_logfile文件坏了 如果没备份要悲剧了
#4
请问linux版xampp的mysql的错误日志在哪啊?我怎么找不到。
#5
#6
啊,非常谢谢。找到了mysql的错误日志。我重启后,错误日至说明如下:
101210 13:17:21 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 13:17:21 InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
.....
101210 13:17:21 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 13:17:21 InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
.....
#7
哦,解决了,删掉ibdata1、ib_logfile0、ib_logfile1就好了。
可又出新问题了,我在数据库里,show tables,看到这个那些表,可就是执行select,不让我访问,说这个表不存在。。。。。不会数据库坏了吧?
可又出新问题了,我在数据库里,show tables,看到这个那些表,可就是执行select,不让我访问,说这个表不存在。。。。。不会数据库坏了吧?
#8
你把IBDATA1都给删除了,INNODB的数据就全没有了。自然这些表就不存在了。
INNODB和MYISAM存储引擎不一样,它的数据是放在IBDATA中的。
INNODB和MYISAM存储引擎不一样,它的数据是放在IBDATA中的。
#9
删到是没删,我只是改了个名。我还是可以再改回去的。可是我不把ibdata1删掉,它就会报InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1,error:11
那我那些表还是访问不了啊。
那我那些表还是访问不了啊。
#10
做好备份。
然后在MY。INI文件中添加参数 innodb_force_recovery=1
试试,不行就加大这个数字,最大可以加到6.
提醒: 做好备份。
然后在MY。INI文件中添加参数 innodb_force_recovery=1
试试,不行就加大这个数字,最大可以加到6.
提醒: 做好备份。
#11
那我还要把ibdata1还原成原先那个吗?
这个备份是做哪个备份?数据库表?还是mysql的系统文件啊?
这个备份是做哪个备份?数据库表?还是mysql的系统文件啊?
#12
那就备份整个目录,全备了。
#13
我加了那个参数,现在加到2,还是说Table 'XXX.XXX' doesn't exist
我看了下mysql的错误日志,也还是说
cannot find or open table XXX/XXX from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe ......
改这个数字是不是没有用阿?
我如果把ibdata1恢复成以前的那个文件,innodb又启不起来。。。。
我看了下mysql的错误日志,也还是说
cannot find or open table XXX/XXX from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe ......
改这个数字是不是没有用阿?
我如果把ibdata1恢复成以前的那个文件,innodb又启不起来。。。。
#14
把ibdata1恢复成以前的那个文件
然后逐步加这个innodb_force_recovery=1
然后逐步加这个innodb_force_recovery=1
#15
用以前的还是不行,我把值改到4,报的错都是一样的。
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 15:17:41 InnoDB: Unable to open the first data file
InnoDB: Error in opening /opt/lampp/var/mysql/ibdata1
101210 15:17:41 InnoDB: Operating system error number 11 in a file operation.
InnoDB: Error number 11 means 'Resource temporarily unavailable'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.htmlInnoDB: Could not open or create data files.
InnoDB: If you tried to add new data files, and it failed here,
InnoDB: you should now edit innodb_data_file_path in my.cnf back
InnoDB: to what it was, and remove the new ibdata files InnoDB created
InnoDB: in this failed attempt. InnoDB only wrote those files full of
InnoDB: zeros, but did not yet use them in any way. But be careful: do not
InnoDB: remove old data files which contain your precious data!
101210 15:17:41 [ERROR] Plugin 'InnoDB' init function returned error.
101210 15:17:41 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.101210 15:17:41 [Note] PrimeBase XT (PBXT) Engine 1.0.08 RC loaded...
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
101210 15:17:41 InnoDB: Unable to open the first data file
InnoDB: Error in opening /opt/lampp/var/mysql/ibdata1
101210 15:17:41 InnoDB: Operating system error number 11 in a file operation.
InnoDB: Error number 11 means 'Resource temporarily unavailable'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.htmlInnoDB: Could not open or create data files.
InnoDB: If you tried to add new data files, and it failed here,
InnoDB: you should now edit innodb_data_file_path in my.cnf back
InnoDB: to what it was, and remove the new ibdata files InnoDB created
InnoDB: in this failed attempt. InnoDB only wrote those files full of
InnoDB: zeros, but did not yet use them in any way. But be careful: do not
InnoDB: remove old data files which contain your precious data!
101210 15:17:41 [ERROR] Plugin 'InnoDB' init function returned error.
101210 15:17:41 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.101210 15:17:41 [Note] PrimeBase XT (PBXT) Engine 1.0.08 RC loaded...
#16
那这样我就有点不明白了,我把ibdata1、ib_logfile0、ib_logfile1这三个文件删了,重启mysql,系统会重新生成这三个文件,既然原innodb数据没了,这不就等于我重新安装了一个mysql吗?那我要移一个innodb数据库近来,要怎么弄呢?xampp下的mysql,每个数据库就是一个文件夹,里面有.frm .myd .myi这三种文件。
#17
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
你是不是已经有一个MYSQLD进程启动了?
InnoDB: Check that you do not already have another mysqld process
你是不是已经有一个MYSQLD进程启动了?
#18
没有啊。我每次都stop mysql的,而且我也查了。会不会是ibdata1这个文件损坏了啊?
#19
我用以前的ibdata1,在mysql里直接show engines,都没有innodb的纪录,have_innodb值都是no
#20
应该是文件有问题。一般应该试着用 innodb_force_recovery=1试着恢复一下。但显然不是100%都能恢复。
恢复的时候,你需要原来的三个文件 ibdata1, ib_logfile0、ib_logfile1
恢复的时候,你需要原来的三个文件 ibdata1, ib_logfile0、ib_logfile1
#21
那文件有问题了,是不是就没戏啦?
那三个文件我也一直没删,只是改了个名。你刚才说了以后,我就改回来,然后改innodb_force_recovery的参数,从1改到4,都报一样的错
InnoDB: Unable to lock /opt/lampp/var/mysql/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
而且mysql启动相当的慢。启动好后,我在mysql环境下对那个innodb数据库进行操作,都说unknown table engine 'InnoDB'。执行show engines,都没有innodb的纪录,have_innodb的值都是no。
我想既然innodb引擎都找不到,那貌似该什么值都没用了。我在网上看到有说把这三个文件删掉,innodb引擎就可以起来了,然后我就把这三个文件移走了,重启mysql,innodb的问题解决了,但现在不认数据库里的table了。
其实我这个数据库是bugzilla的数据库,数据库的建立是安装bugzilla时软件自动建的。我有用mysqldump备份数据库,是 .sql文件,我是不是source一下就可以啦?还是对于innodb型数据库,导入sql文件有别的说法啊?
我现在都不敢动了。。。。
#22
谢谢,搞定了,用了以前的ibdata1的备份文件,改宿主名为nobody:nobody,删掉ib_logfile0和1这两个文件。重启mysql,就ok了。不过这几天的记录都没了。
#23
我也碰到这问题了 也是把备份复制过去不能启动INNODB引擎 请问楼主“改宿主名为nobody:nobody”这句是什么意思
#24
一次断电引发的innodb表空间错误,引发的innodb引擎全瘫血案,看了让人心惊肉跳。
你啥mysql版本,所有innodb表空间多少G?能给我么?
ibdata1, ib_logfile0、ib_logfile1
你啥mysql版本,所有innodb表空间多少G?能给我么?
ibdata1, ib_logfile0、ib_logfile1
#25
show plugin
查看Innodb这条信息就表示安装好了。
如果没有安装成功或者是在已经安装好mysql的情况下,只要执行下面语句再安装一次就OK。
install plugin innodb soname 'ha_innodb.so' ;
查看Innodb这条信息就表示安装好了。
如果没有安装成功或者是在已经安装好mysql的情况下,只要执行下面语句再安装一次就OK。
install plugin innodb soname 'ha_innodb.so' ;