Mysql – #1036 – Table ‘pma__recent’ is read only in phpMyAdmin / xampp / Windows

innodbMySQLphpmyadmin

I have about 40 databases on localhost powered by xampp 5.6.15.
Some of them use MyISAM and others InnoDB.

The database has been corrupt and phpMyAdmin was permanently outputing error messages. I tried many things suggested on stackexchange's websites and I almost managed to get back to normal.

However, there is still this message in phpMyAdmin when clicking on a table name:

#1036 - Table 'pma__recent' is read only

From my readings, this seems caused by innodb_force_recovery = 1 in xampp\mysql\bin\my.ini file.

Unfortunately, if I comment out innodb_force_recovery, MySQL cannot be started, probably because there are still errors in the database.

I called mysqlcheck -c -u root -p --all-databases from a terminal.
The log tells that some tables are not existing in engine (whilst they should).

How should I proceed to get back to normal?

Best Answer

This a draft of my ongoing attempts to solve the issue.

The first steps I suggest are:

  1. Stop the MySQL server
  2. Backup the whole database folder mysql/data
  3. Start the server again
  4. Check the MySQL databases individually for possible errors: mysqlcheck -u root -p some_database_name