我的情况是 我在优化mysql的时候修改了关于Innodb参数的数值,造成前后不一致,从而导致Innodb数据的表无法支持,
而 show engines;的时候,也没有Innodb存储引擎.
幸亏修改的时候有备份,恢复备份,重启mysql,恢复正常。
错误日志:
InnoDB: Error: log file /data/database/ib_logfile0 is of different size 0 134217728 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
121226 12:05:39 [ERROR] Plugin 'InnoDB' init function returned error.
121226 12:05:39 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
121226 12:05:39 [Warning] 'user' entry 'root@school-my.chinaedu.com' ignored in --skip-name-resolve mode.
121226 12:05:39 [Warning] 'user' entry '@school-my.chinaedu.com' ignored in --skip-name-resolve mode.
121226 12:05:39 [Note] Event Scheduler: Loaded 0 events
121226 12:05:39 [Note] /home/101/mysql/libexec/mysqld: ready for connections.
Version: '5.1.46-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution
InnoDB: than specified in the .cnf file 0 268435456 bytes!
121226 12:05:39 [ERROR] Plugin 'InnoDB' init function returned error.
121226 12:05:39 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
121226 12:05:39 [Warning] 'user' entry 'root@school-my.chinaedu.com' ignored in --skip-name-resolve mode.
121226 12:05:39 [Warning] 'user' entry '@school-my.chinaedu.com' ignored in --skip-name-resolve mode.
121226 12:05:39 [Note] Event Scheduler: Loaded 0 events
121226 12:05:39 [Note] /home/101/mysql/libexec/mysqld: ready for connections.
Version: '5.1.46-log' socket: '/tmp/mysql.sock' port: 3306 Source distribution
------------------------------------
今天对MySQL数据库进行了物理拷贝,遇到一个棘手的问题,MySQL能正常启动,不过打开数据表的时候,提示Unknow Table Engine InnoDB.
错误提示很明显是没有加载InnoDB。在网上找了一下,基本上有两种方法:
1:注释掉skip-innodb选项
2:删掉两个 ib_logfile* 文件
不过这两个方法都没用。我查看了MySQL的错误日志,发现有以下提示:
InnoDB: Error: log file ./ib_logfile0 is of different size 0 25165824 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
原来我拷贝过去的log文件最大是24MB,而MySQL默认的配置是5MB,这两个数值不统一,导致了InnoDB启动时出现了错误。
解决方法:修改MySQL的配置: innodb_log_file_size = 24M 。其中24M对应的就是你的logfile的大小。
错误提示很明显是没有加载InnoDB。在网上找了一下,基本上有两种方法:
1:注释掉skip-innodb选项
2:删掉两个 ib_logfile* 文件
不过这两个方法都没用。我查看了MySQL的错误日志,发现有以下提示:
InnoDB: Error: log file ./ib_logfile0 is of different size 0 25165824 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
原来我拷贝过去的log文件最大是24MB,而MySQL默认的配置是5MB,这两个数值不统一,导致了InnoDB启动时出现了错误。
解决方法:修改MySQL的配置: innodb_log_file_size = 24M 。其中24M对应的就是你的logfile的大小。
----------------------------------------------
最近在看MYSQL优化的参数,改了innodb_log_file_size参后,启动下面报错,然来是改了这个参数后需要关闭MYSQLSQL删除ib_logfile0, ib_logfile1这些文件,再启动MYSQL。
080622 10:53:27 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
080622 10:53:27 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
InnoDB: Error: log file /usr/local/mysql/data/ib_logfile0 is of different size 0 104857600 bytes
InnoDB: than specified in the .cnf file 0 134217728 bytes!
080622 10:53:28 [ERROR] Plugin 'InnoDB' init function returned error.
080622 10:53:28 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
080622 10:53:28 [Note] Event Scheduler: Loaded 0 events
080622 10:53:28 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.1.24-rc-log' socket: '/usr/local/mysql/tmp/mysql.sock' port: 3307 Source distribution
080622 10:53:28 [Note] Event Scheduler: scheduler thread started with id 1
080622 11:20:07 [Note] /usr/local/mysql/libexec/mysqld: Normal shutdown
今天有点忙,经过1个多星期的压力测试后,得到了很多数据,着手根据数据进行数据库服务器的优化!最累就是这个东西了- -
优化方案在完成后我贴出来慢慢说,现在先记录下今天碰到的第一个问题………
优化INNODB引擎的参数的时候,为了进一步提高效率,又一次提高了innodb_buffer_pool_size的值(768M,服务器很烂,内存就1G,预订的服务器还没到,估计到时候又要测一次,又要累了,所以老总的要求就是在这种烂服务器上测个大概,比较好定位将来要买什么价位的服务器………)
innodb_buffer_pool_size=768M
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_additional_mem_pool_size=4M
innodb_flush_log_at_trx_commit=0
innodb_thread_concurrency=20
以上是对innodb引擎的初步优化,我们是一次性更换了所有的参数,然后保存配置文件,然后无法启动mysql,最后一步一步来发现是更新innodb_log_file_size=256M时候出现了问题,只要加上这个就无法启动(第一次没经验啊- -汗了)。
后来才知道原来要STOP服务先,然后再删除原来的文件………
打开/var/lib/mysql
删除ib_logfile0, ib_logfile1........ib_logfilen
再开启选项,成功启动。
080622 10:53:27 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
080622 10:53:27 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
InnoDB: Error: log file /usr/local/mysql/data/ib_logfile0 is of different size 0 104857600 bytes
InnoDB: than specified in the .cnf file 0 134217728 bytes!
080622 10:53:28 [ERROR] Plugin 'InnoDB' init function returned error.
080622 10:53:28 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
080622 10:53:28 [Note] Event Scheduler: Loaded 0 events
080622 10:53:28 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.1.24-rc-log' socket: '/usr/local/mysql/tmp/mysql.sock' port: 3307 Source distribution
080622 10:53:28 [Note] Event Scheduler: scheduler thread started with id 1
080622 11:20:07 [Note] /usr/local/mysql/libexec/mysqld: Normal shutdown
今天有点忙,经过1个多星期的压力测试后,得到了很多数据,着手根据数据进行数据库服务器的优化!最累就是这个东西了- -
优化方案在完成后我贴出来慢慢说,现在先记录下今天碰到的第一个问题………
优化INNODB引擎的参数的时候,为了进一步提高效率,又一次提高了innodb_buffer_pool_size的值(768M,服务器很烂,内存就1G,预订的服务器还没到,估计到时候又要测一次,又要累了,所以老总的要求就是在这种烂服务器上测个大概,比较好定位将来要买什么价位的服务器………)
innodb_buffer_pool_size=768M
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_additional_mem_pool_size=4M
innodb_flush_log_at_trx_commit=0
innodb_thread_concurrency=20
以上是对innodb引擎的初步优化,我们是一次性更换了所有的参数,然后保存配置文件,然后无法启动mysql,最后一步一步来发现是更新innodb_log_file_size=256M时候出现了问题,只要加上这个就无法启动(第一次没经验啊- -汗了)。
后来才知道原来要STOP服务先,然后再删除原来的文件………
打开/var/lib/mysql
删除ib_logfile0, ib_logfile1........ib_logfilen
再开启选项,成功启动。
转载于:https://blog.51cto.com/liuer/1101818