Changes

Jump to navigation Jump to search
2,581 bytes added ,  12:32, 5 July 2022
no edit summary
Line 85: Line 85:  
  /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables < set.password
 
  /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables < set.password
 
  sv u .
 
  sv u .
 +
 +
==MariaDB/MySQL ne démarre pas==
 +
Vous devez rechercher la cause en inspectant deux journaux :
 +
* le journal du service
 +
journalctl -u mariadb
 +
* le journal de mariadb
 +
tail -f  /var/log/mariadb/mariadb.log
 +
 +
===Table utilisateur corrompue===
 +
Votre erreur dans le journal mariadb inclura :
 +
ERROR: 130  Incorrect file format 'user'
 +
 +
Cela peut se produire principalement après une panne de courant. La table mysql.user est un type MYSIAM.
 +
# ll /var/lib/mysql/mysql/user.*
 +
-rw-rw---- 1 mysql mysql 10630  3 jui 21:08 /var/lib/mysql/mysql/user.frm
 +
-rw-rw---- 1 mysql mysql  488  3 jui 21:08 /var/lib/mysql/mysql/user.MYD
 +
-rw-rw---- 1 mysql mysql  2048  3 jui 21:08 /var/lib/mysql/mysql/user.MYI
 +
Dans ce cas, vous pouvez voir user.MYD ou user.MYI avec une taille de 0 octet. Si le problème est sur MYI, c'est l'index que vous devriez pouvoir reconstruire, s'il est sur le MYD, ce sont les données, vous aurez besoin d'une sauvegarde à partir de laquelle restaurer.
 +
 +
En tant que root, commencez par démarrer mariadb sans authentification (« grant table ») :
 +
systemctl stop mariadb
 +
/usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables
 +
{{warning box|type=Attention : |faites attention que mariadb fonctionnera sans aucune authentification d'utilisateur, s'il est ouvert à l'extérieur de votre serveur, vous voudrez peut-être d'abord fermer cet accès et garder cette session aussi courte que possible.}}
 +
Puis utiliser la ligne de commande mysql :
 +
mysqlcheck mysql
 +
Si une erreur s'affiche, essayer :
 +
mysqlcheck mysql --repair
 +
Si cela échoue, vous devez effectuer une restauration. Vous pourriez avoir un « dump » dans /home/e-smith/db/mysql/mysql.dump. En espèrant qu'il soit à jour. Je vous suggère de le copier et d'extraire simplement la partie du tableau qui vous manque.
 +
Vous avez besoin de ce qui est ci-dessous :
 +
--
 +
-- Table structure for table `user`
 +
--
 +
et
 +
--
 +
-- Dumping data for table `user`
 +
--
 +
En considerant que votre table « dump » est maintenant dans un fichier dénommé /home/e-smith/db/mysql/mysql.user.dump, faites :
 +
mysql mysql < /home/e-smith/db/mysql/mysql.user.dump
 +
expand-template /var/service/mysqld/set.password
 +
mysql mysql < /var/service/mysqld/set.password
 +
mysqladmin shutdown
 +
systemctl start mariadb
 +
 +
{{warning box|type=Attention : |la ligne de « dump » de la table mysql.user sur le serveur mariadb supprimera toutes les entrées existantes dans la table si vous utilisez le « dump » SME par défaut car il comporte une ligne DROP TABLE IF EXISTS. Ne faites donc cela que si vous savez ce que vous faites.}}
    
==Accès à MariaDB/MySQL en utilisant le port de localhost et à partir du réseau local==
 
==Accès à MariaDB/MySQL en utilisant le port de localhost et à partir du réseau local==
3,054

edits

Navigation menu