I restarted my server because it froze (probably the stupidest thing I did so far) and then got some internal server errors. I soon discovered that mysql had failed on startup (service mysql status). I read the mysql error log( Pastebin ) and started googling.
I'm running Ubuntu at its latest version, mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper. What I tried:
Here is my /var/log/mysql/error.log
2020-08-07T15:43:06.094116Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-08-07T15:43:06.095903Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.31-0ubuntu0.18.04.1) starting as process 952 ...
2020-08-07T15:43:06.100450Z 0 [Note] InnoDB: PUNCH HOLE support available
2020-08-07T15:43:06.100482Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2020-08-07T15:43:06.100489Z 0 [Note] InnoDB: Uses event mutexes
2020-08-07T15:43:06.100496Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2020-08-07T15:43:06.100502Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2020-08-07T15:43:06.100508Z 0 [Note] InnoDB: Using Linux native AIO
2020-08-07T15:43:06.100771Z 0 [Note] InnoDB: Number of pools: 1
2020-08-07T15:43:06.100876Z 0 [Note] InnoDB: Using CPU crc32 instructions
2020-08-07T15:43:06.102827Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2020-08-07T15:43:06.112754Z 0 [Note] InnoDB: Completed initialization of buffer pool
2020-08-07T15:43:06.114871Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2020-08-07T15:43:06.127135Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2020-08-07T15:43:06.128655Z 0 [Note] InnoDB: Log scan progressed past the checkpoint lsn 7945493345
2020-08-07T15:43:06.128723Z 0 [Note] InnoDB: Doing recovery: scanned up to log sequence number 7945545114
2020-08-07T15:43:06.130551Z 0 [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 7945493345 and the end 7945545114.
2020-08-07T15:43:06.130573Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2020-08-07T15:43:06.732437Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2020-08-07T15:43:06.732470Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2020-08-07T15:43:06.732482Z 0 [ERROR] Failed to initialize builtin plugins.
2020-08-07T15:43:06.732491Z 0 [ERROR] Aborting
2020-08-07T15:43:06.732526Z 0 [Note] Binlog end
2020-08-07T15:43:06.732586Z 0 [Note] Shutting down plugin 'CSV'
2020-08-07T15:43:06.732959Z 0 [Note] /usr/sbin/mysqld: Shutdown complete
If you need more logs/informations, I will provide them. Thanks, I'm really desperate, I really don't want to loose the past 2 years of my life.
Before deleting ib_logfile0, ib_logfile1 and ibdata1, I started mysql in InnoDB recovery mod 4 and logged in to phpmyadmin to backup all of my databases. After that I removed the ib files, purged mysql and phpmyadmin, reinstalled them, reconfigured mysql, logged into phpmyadmin and imported my databases.