Version française plus bas.
So finnaly, after long long seaches, I solved my problem with mariadb corrupted table with this method (not very clean but it has worked):
-
stop mariadb service: systemctl stop mysql.service
-
move mysql data dir to a safe place: mv /var/lib/mysql /var/lib/mysql-backup
-
edit /etc/mysql/my.cnf and comment the line innodb_force_recovery = 5
-
start mariadb service: systemctl start mysql.service
mariadb should start normally -
connect to mysql: mysql -u root -pYOUR_MYSQL_ROOT_PASSWORD (stored in /etc/yunohost/mysql)
-
create nextcloud database: create database nextcloud; (don’t forget the ; at the end of the line)
-
quit mysql: exit
-
restore the nextcloud database dump: mysql -u root -pYOUR_MYSQL_ROOT_PASSWORD nextcloud < /path_to_your_nextcloud_dump.sql
-
connect to mysql: mysql -u root -pYOUR_MYSQL_ROOT_PASSWORD
-
empty the faulty table: truncate nextcloud.oc_filecache;
-
quit mysql: exit
-
check all the tables in all the databases: mysqlcheck -u root -pYOUR_MYSQL_ROOT_PASSWORD --all-databases
all of the tables should be ok!
- connect to your nextcloud web interface: ok
Bon finalement, j’ai réussi à m’en sortir avec la table corrompue dans la base nextcloud, en utilisant la méthode suivante (un peu bourrine, mais ça marche):
-
arrêt du service mariadb: systemctl stop mysql.service
-
déplacement du répertoire de stockage de mysql: mv /var/lib/mysql /var/lib/mysql-backup
-
editer /etc/mysql/my.cnf et commenter la ligne innodb_force_recovery = 5
-
démarrage de mariadb: systemctl start mysql.service
mariadb devrait démarrer correctement -
se connecter à mysql: mysql -u root -pVOTRE_MOT_DE_PASSE_ROOT_MYSQL (stocké dans /etc/yunohost/mysql)
-
Créer la base de données nextcloud: create database nextcloud; (ne pas oublier le ; en fin de ligne)
-
quitter mysql: exit
-
restaurer le dump de la base nextcloud: mysql -u root -pVOTRE_MOT_DE_PASSE_ROOT_MYSQL nextcloud < /path_to_your_nextcloud_dump.sql
-
se connecter à mysql: mysql -u root -pVOTRE_MOT_DE_PASSE_ROOT_MYSQL (stocké dans /etc/yunohost/mysql)
-
vider la table corrompue: truncate nextcloud.oc_filecache;
-
quitter mysql: exit
-
vérification de toutes les tables dans toutes les bases présentes: mysqlcheck -u root -pVOTRE_MOT_DE_PASSE_ROOT_MYSQL --all-databases
Normalement, toutes les tables doivent avoir le statut “ok” -
connexion à l’interface web de nextcloud: ok