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== |