Bonjour,

Mon serveur a planté parce que le disque dur était plein, enfin, c'est ce que je pensais.
J'ai fait de la place et ai relancé Apache2. Malheureusement, MYSQL refuse de se lancer et je n'arrive pas à trouver de solution.

# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
# systemctl status mysql.service
mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql)
Active: failed (Result: exit-code) since Thu 2020-02-27 16:47:11 CET; 1min 7s ago
Process: 10878 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)
0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
[61B blob data]
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
# journalctl -xn
warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (111)
warning: mysql:/etc/postfix/mysql-virtual_relaydomains.cf: table lookup problem
warning: 9B1C224E55: flush service failure
Dans /var/log/mysql/error.log
[Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
[Note] - '0.0.0.0' resolves to '0.0.0.0';
[Note] Server socket created on IP: '0.0.0.0'.
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Aucune erreur dans les logs apache.

J'ai donc fait une recherche sur les deux erreurs que je vois :

# Première erreur : Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Le répertoire /var/run/mysqld/ est vide est mysqld.sock n'est effectivement pas généré, j'ai donc modifié les permissions pour que mysql puisse bien écrire dans ce répertoire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
chown -R mysql:mysql /var/run/mysql
J'ai vérifié si les chemins étaient bien spécifié dans les fichiers de config, et c'est bien le cas :

Dans /etc/mysql/my.cnf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
Du coup, je suis perdu, j'ai passé des heures à faire des recherches et à lire des posts qui parlaient de cette question et aucun ne m'a permis de régler le problème.
Désolé, j'ai conscience que ce problème ressort tout le temps et que l'on doit très fréquemment poser la question, mais rien de ce que j'ai trouvé ne me permet pour l'instant de régler le problème.

# Seconde erreur : Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

Là aussi, j'ai bien vérifié que les permissions de /var/lib/mysql soit bien correcte.
Mais du coup, j'ai l'impression que si le serveur n'arrive pas à se connecter à MYSQL, il est normal qu'il ne puisse pas trouver la table.
Cette erreur me semble donc découler du problème de socket. Ou alors, je me trompe complètement.

Du coup, est-ce que quelqu'un a une idée du problème ?

Merci beaucoup d'avoir pris le temps de lire jusque là et peut-être de répondre !