Unknown/unsupported storage engine: InnoDB
2022-05-30 06:09:48+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.8.3+maria~jammy started. 2022-05-30 06:09:48+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2022-05-30 06:09:48+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.8.3+maria~jammy started. 2022-05-30 06:09:49+00:00 [Note] [Entrypoint]: MariaDB upgrade information missing, assuming required 2022-05-30 06:09:49+00:00 [Note] [Entrypoint]: MariaDB upgrade (mariadb-upgrade) required, but skipped due to $MARIADB_AUTO_UPGRADE setting 2022-05-30 6:09:49 0 [Note] mariadbd (server 10.8.3-MariaDB-1:10.8.3+maria~jammy) starting as process 1 ... 2022-05-30 6:09:49 0 [Note] InnoDB: Compressed tables use zlib 1.2.11 2022-05-30 6:09:49 0 [Note] InnoDB: Number of transaction pools: 1 2022-05-30 6:09:49 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions 2022-05-30 6:09:49 0 [Note] mariadbd: O_TMPFILE is not supported on /tmp (disabling future attempts) 2022-05-30 6:09:49 0 [Warning] mariadbd: io_uring_queue_init() failed with ENOSYS: check seccomp filters, and the kernel version (newer than 5.1 required) 2022-05-30 6:09:49 0 [Warning] InnoDB: liburing disabled: falling back to innodb_use_native_aio=OFF 2022-05-30 6:09:49 0 [Note] InnoDB: Initializing buffer pool, total size = 128.000MiB, chunk size = 2.000MiB 2022-05-30 6:09:49 0 [Note] InnoDB: Completed initialization of buffer pool 2022-05-30 6:09:49 0 [Note] InnoDB: File system buffers for log disabled (block size=512 bytes) 2022-05-30 6:09:49 0 [ERROR] InnoDB: Upgrade after a crash is not supported. The redo log was created with MariaDB 10.5.4. 2022-05-30 6:09:49 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error 2022-05-30 6:09:49 0 [Note] InnoDB: Starting shutdown... 2022-05-30 6:09:49 0 [ERROR] Plugin 'InnoDB' init function returned error. 2022-05-30 6:09:49 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2022-05-30 6:09:49 0 [Note] Plugin 'FEEDBACK' is disabled. 2022-05-30 6:09:49 0 [ERROR] Unknown/unsupported storage engine: InnoDB 2022-05-30 6:09:49 0 [ERROR] Aborting
Recently, we were working on a MariaDB installation in Docker which was using the latest version of the container. The definition in our configuration file was as follows:
# An excerpt from our docker-compose.yml
mariadb_alpha:
depends_on:
- another_container
image: mariadb
container_name: mariadb_alpha
networks:
- mariadb_alpha
volumes:
- /alpha/mysql:/var/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: qwerty
MYSQL_DATABASE: aplha
MYSQL_USER: user
MYSQL_PASSWORD: password
After an update, the database stopped working and the logs were giving the above errors. Specifically, we got the error that InnoDB was an unknown or unsupported storage engine which is really bad! The command we used to view the logs is the following:
# We used the following docker command to view the logs of the container
docker container logs mariadb_alpha;
We noticed the following line from the records, which was extremely useful:
InnoDB: Upgrade after a crash is not supported. The redo log was created with MariaDB 10.5.4.
From this information, we were able to understand that the last time the database functioned properly, it was using MariaDB version 10.5.4. By visiting the official docker image website for MariaDB, we were able to see that there was a version tagged 10.5. We modified our YML file and changed the image of the container to the one below which uses the 10.5 tagged image:
# An excerpt from our docker-compose.yml
mariadb_alpha:
...
image: mariadb:10.5
...
Then, we rebuilt our container using the docker-compose command:
#We increase the timeout to avoid issues
export COMPOSE_HTTP_TIMEOUT=180;
docker-compose up -d --remove-orphans;
After the setup was complete, we were able to see that the container was working as expected! We reverted the change in the YML file back to image: mariadb
and executed docker-compose once more. The MariaDB container was updated to the latest version and was working as expected again!