Search code examples
mysqllinuxcentosvps

CentOs 6.9 Mysqld failed to start (InnoDB Error: innodb_system data file './ibdata1' is of a different size)


Upgraded to php 5.5 (I KNOW ITS OLD) and updated my phpMyAdmin version, aswell as MySQL to 5.7, and now MySQL wont start...

Looking in the mysqld log: 2018-03-16T16:35:54.553247Z 0 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages! 2018-03-16T16:35:54.553310Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error 2018-03-16T16:35:55.153859Z 0 [ERROR] Plugin 'InnoDB' init function returned error. 2018-03-16T16:35:55.153924Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2018-03-16T16:35:55.153944Z 0 [ERROR] Failed to initialize builtin plugins. 2018-03-16T16:35:55.153964Z 0 [ERROR] Aborting

Can someone please make me aware as to why this may be happening.


Solution

  • The configuration file /etc/my.cnf contains an innodb_xxxx that refers to an autoextend with size of 768 pages. This can include paramaters like

    innodb_data_home_dir

    innodb_data_file_path

    The full syntax describes this value

    file_name:file_size[:autoextend[:max:max_file_size]]
    

    Example

    innodb_data_file_path=/var/lib/mysql/ibdata1:768M:autoextend
    

    If you have access to the previous working MySQL (like another server of your friend), login to the mysql client and type following to view the running configuration

    > SELECT @@GLOBAL.innodb_data_file_path;
    
    +--------------------------------+
    | @@GLOBAL.innodb_data_file_path |
    +--------------------------------+
    | ibdata1:10M:autoextend         |
    +--------------------------------+
    

    Why this is happening?

    You have an existing innodb storage file that is smaller than the initial size specified in your my.cnf configuration.

    Hope this clarify matters.