InnoDB error: The Auto-extending data file './ibdata1' is of a different size

I’m trying out Devilbox as an alternative to XAMPP on my Linux machine. I was able to fire up the intranet, but somehow the MySQL refuses to work. When I checked the Databases > MySQL DB in the intranet, it says “MySQL container is not running.” I tried doing a minimal startup by running docker-compose up mysql and this is the console output:

[+] Running 0/4
 ⠼ Container devilbox-bind-1   Created                                                         0.4s 
 ⠸ Container devilbox-php-1    Created                                                         0.3s 
 ⠹ Container devilbox-httpd-1  Created                                                         0.2s 
 ⠋ Container devilbox-mysql-1  Created                                                         0.1s 
Attaching to mysql-1
mysql-1  | 2024-04-14 09:29:06+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.12+maria~ubu2004 started.
mysql-1  | 2024-04-14 09:29:06+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
mysql-1  | 2024-04-14 09:29:06+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.12+maria~ubu2004 started.
mysql-1  | 2024-04-14 09:29:06+00:00 [Note] [Entrypoint]: Initializing database files
mysql-1  | 2024-04-14  9:29:06 0 [ERROR] InnoDB: The Auto-extending data file './ibdata1' is of a different size 607 pages than specified by innodb_data_file_path
mysql-1  | 2024-04-14  9:29:06 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
mysql-1  | 2024-04-14  9:29:06 0 [ERROR] Plugin 'InnoDB' init function returned error.
mysql-1  | 2024-04-14  9:29:06 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
mysql-1  | 2024-04-14  9:29:06 0 [ERROR] Unknown/unsupported storage engine: InnoDB
mysql-1  | 2024-04-14  9:29:06 0 [ERROR] Aborting
mysql-1  | 
mysql-1  | Installation of system tables failed!  Examine the logs in
mysql-1  | /var/lib/mysql/ for more information.
mysql-1  | 
mysql-1  | The problem could be conflicting information in an external
mysql-1  | my.cnf files. You can ignore these by doing:
mysql-1  | 
mysql-1  |     shell> /usr/bin/mariadb-install-db --defaults-file=~/.my.cnf
mysql-1  | 
mysql-1  | You can also try to start the mariadbd daemon with:
mysql-1  | 
mysql-1  |     shell> /usr/sbin/mariadbd --skip-grant-tables --general-log &
mysql-1  | 
mysql-1  | and use the command line tool /usr/bin/mariadb
mysql-1  | to connect to the mysql database and look at the grant tables:
mysql-1  | 
mysql-1  |     shell> /usr/bin/mariadb -u root mysql
mysql-1  |     MariaDB> show tables;
mysql-1  | 
mysql-1  | Try '/usr/sbin/mariadbd --help' if you have problems with paths.  Using
mysql-1  | --general-log gives you a log in /var/lib/mysql/ that may be helpful.
mysql-1  | 
mysql-1  | The latest information about mysql_install_db is available at
mysql-1  | https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
mysql-1  | You can find the latest source at https://downloads.mariadb.org and
mysql-1  | the maria-discuss email list at https://launchpad.net/~maria-discuss
mysql-1  | 
mysql-1  | Please check all of the above before submitting a bug report
mysql-1  | at https://mariadb.org/jira
mysql-1  | 
mysql-1 exited with code 1

I haven’t made any custom configurations yet. Any idea why this happens and how to fix it?

Which version of PHP and MariaDB have you enabled in .env?
Can you try to switch to another version of MariaDB (or maybe MySQL)?
Sometime mysql images are corrupted: you can try to delete downloaded images (docker rmi image-id) and restart docker-compose up mysql

1 Like

Corrupted MySQL image seems to be the cause of this error. I updated my .env to use the latest available version of the MySQL image (mariadb-10.10) and now it works fine.

Thanks @massiws!