[Résolu]MySQL inactive inactif

Bonjour
j’ai un soucis mon service MySQL est inactif
Raspbian Wheezy
$ sudo yunohost -v
moulinette: 2.2.1.1
moulinette-yunohost: 2.2.6
yunohost-admin: 2.2.1

je tente un stop et un start (sudo yunohost service start mysql) et voila le reultat
Attention : Impossible d’exécuter la commande 'service mysql start’
Erreur : Impossible de démarrer le service ‘mysql’ …

les fichiers /var/log/mysql.err et .log sont vides

merci de votre aide

Salut,

est-ce que tu obtiens plus d’infos en tappant service mysql status ?

Pas beaucoup plus

$ service mysql status
[info] MySQL is stopped…

$ sudo service mysql start
[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

$ tail /var/log/mysql.log /var/log/mysql.err
==> /var/log/mysql.log <==

==> /var/log/mysql.err <==

mais ou sont les logs d’erreur?

merci pour votre aide a+

En fouillant un peu il apparait que mon problème ressemble à celui la : [contourné]Mysql ne se lance pas au démarrage

mais le MySQL_upgrade ne marche pas …

Salut,

ça peu avoir un rapport avec le fait que tout est sous wheezy, l’“ancienne” version de Debian. Il est fortement recommandé de passer à Jessie (la version actuelle) car Yunohost n’est pas vraiment supporté sous Wheezy (et de toute façon c’est très vieux).

Il y a plusieurs façon de faire, et c’est pas forcément évident… Si tu viens d’installer ton serveur et que tu n’es pas super à l’aise avec l’administration système “à la main” (ligne de commande, debugging…), le plus simple est de réinstaller ton serveur avec Jessie directement, je dirais. Si tu as des données que tu veux conserver, tu peux essayer de faire la transition en suivant ce tuto : https://www.howtoforge.com/tutorial/how-to-upgrade-debian-wheezy-to-jessie-stable-release/

merci pour l’info, mais je suis sur raspberry et il n’est pas possible d’upgrader de wheezy à Jessy (edit: apperement sur ton lien quelqu’un a réussi …)
ensuite c’est toujours la version 2.2 de Yunohost qui tourne donc elle devrait fonctionner avec Wheezy

Par contre je suis en train de refaire une install sur un nouveau raspberry 3 avec Jessie
mais pour migrer j’aurais besoin d’accéder à mon instance actuelle de Yunohost pour recuperer calendrier / contacts / rss / etc … et avec ce problème de MySQL c’est pas possible …
pour le mail ya pas de soucis

Bon j’ai reussi a lancer comme dit dans l’autre post par @bidroik les commandes
su - mysql -s /bin/bash -c “/usr/sbin/mysqld --skip-grant-tables”

puis dans un autre terminal
$ mysql
mysql> use mysql
mysql> repair table host use_frm;

j’ai réparé
je relance mais c’est toujours failed …
:disappointed:

voici le contenu du fichier /var/lib/mysql/raspberry.err

61228 21:06:46 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
161228 21:06:46 [Note] /usr/sbin/mysqld (mysqld 5.5.53-0+deb7u1) starting as process 4119 …
161228 21:06:46 [Note] Plugin ‘FEDERATED’ is disabled.
/usr/sbin/mysqld: Incorrect file format 'plugin’
161228 21:06:46 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
161228 21:06:46 InnoDB: The InnoDB memory heap is disabled
161228 21:06:46 InnoDB: Mutexes and rw_locks use GCC atomic builtins
161228 21:06:46 InnoDB: Compressed tables use zlib 1.2.7
161228 21:06:46 InnoDB: Using Linux native AIO
161228 21:06:46 InnoDB: Initializing buffer pool, size = 128.0M
161228 21:06:47 InnoDB: Completed initialization of buffer pool
161228 21:06:47 InnoDB: highest supported file format is Barracuda.
161228 21:06:48 InnoDB: Waiting for the background threads to start
161228 21:06:49 InnoDB: 5.5.53 started; log sequence number 5738720196
161228 21:06:49 [Note] Server hostname (bind-address): ‘127.0.0.1’; port: 3306
161228 21:06:49 [Note] - ‘127.0.0.1’ resolves to ‘127.0.0.1’;
161228 21:06:49 [Note] Server socket created on IP: ‘127.0.0.1’.
161228 21:06:49 [ERROR] Fatal error: Can’t open and lock privilege tables: Incorrect file format 'user’
161228 21:06:49 mysqld_safe mysqld from pid file /var/lib/mysql/raspberrypi.pid ended

Voila c’est le seul message d’erreur que j’ai en redemarrant le service mysql
qu’est ce que je peux faire?

merci de votre aide …
jean

Salut,

je pense que le probleme vient du fait que certains des tables (ou databases ?) de mysql sont corrompues… C’est un probleme qui arrive souvent (en tout cas on trouve pas mal de gens qui ont eu ce genre de problèmes avec (my)sql je crois).

Je sais pas trop quelle est la meilleure solution à adopter car j’ai peu d’expérience avec ça. Le truc que tu essayais avant avec “repair table” est probablement le meilleur truc à faire. Par contre je crois que tu n’as pas réparé toutes les tables. En l’occurence, le dernier log que tu montres dit que la table “user” est corrompue je crois. Tu pourrais donc re-tenter la manip de “repair table” mais cette fois sur la table user. Je pense que ca doit être : repair table user ? Mais il y a potentiellement encore d’autres tables qui sont corrompues. Il me semble qu’il y a une commande pour lister toutes les tables et savoir si elles sont corrompues ou non :confused:

Idéalement, je pense que la solution serait quand même d’avoir un backup des tables de mysql pour pouvoir les restaurer :s

Super c’etait ca la precedente table etait host et la user
j’ai donc refait la manip decrite
mais cette fois ci avec

mysql
use mysql
Database changed
mysql> repair table user use_frm;
±-----------±-------±---------±---------+
| Table | Op | Msg_type | Msg_text |
±-----------±-------±---------±---------+
| mysql.user | repair | status | OK |
±-----------±-------±---------±---------+
1 row in set (0.01 sec)

mysql> exit
Bye
pi@raspberrypi /var/log $ sudo yunohost service start mysql
Succès ! Service ‘mysql’ démarré avec succès

Merci beaucoup :smiley:

Wow, cool :smiley: !

Je m’attendais pas à ce que ça résolve vraiment le problème :smile: !

Arf j’ai crie victoire trop vite
en fait j’avas laissé ouvert le service avec la commande
su - mysql -s /bin/bash -c “/usr/sbin/mysqld --skip-grant-tables”

en fermant le process et relancant le service normalement j’ai cette erreur

161228 21:51:24 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
161228 21:51:24 [Note] /usr/sbin/mysqld (mysqld 5.5.53-0+deb7u1) starting as process 5344 …
161228 21:51:24 [Note] Plugin ‘FEDERATED’ is disabled.
/usr/sbin/mysqld: Incorrect file format 'plugin’
161228 21:51:24 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
161228 21:51:24 InnoDB: The InnoDB memory heap is disabled
161228 21:51:24 InnoDB: Mutexes and rw_locks use GCC atomic builtins
161228 21:51:24 InnoDB: Compressed tables use zlib 1.2.7
161228 21:51:24 InnoDB: Using Linux native AIO
161228 21:51:24 InnoDB: Initializing buffer pool, size = 128.0M
161228 21:51:24 InnoDB: Completed initialization of buffer pool
161228 21:51:24 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
161228 21:51:24 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files…
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer…
161228 21:51:25 InnoDB: Waiting for the background threads to start
161228 21:51:26 InnoDB: 5.5.53 started; log sequence number 5738720206
161228 21:51:26 [Note] Server hostname (bind-address): ‘127.0.0.1’; port: 3306
161228 21:51:26 [Note] - ‘127.0.0.1’ resolves to ‘127.0.0.1’;
161228 21:51:26 [Note] Server socket created on IP: ‘127.0.0.1’.
161228 21:51:26 [ERROR] Fatal error: Can’t open and lock privilege tables: Incorrect file format 'db’
161228 21:51:26 mysqld_safe mysqld from pid file /var/lib/mysql/raspberrypi.pid ended

:confounded:

En lisant ce post j’ai mis en lumiere un probleme de droit /var/lib/mysql/performance_schema/ appartient a root et non a mysql:

j’ai donc fait un

chown -R mysql:mysql /var/lib/mysql/performance_schema/

mais j’ai toujours un probleme de demarrage …

Il me fallait faire un upgrade

su - mysql -s /bin/bash -c “/usr/bin/mysql_upgrade”

chaque message d’erreur donne la liste des tables à reparer

Il me restait d’autre repair à faire

repair table db use_frm;
repair table tables_priv use_frm;
repair table columns_priv use_frm;
repair table func use_frm;
repair table plugin use_frm;
repair table event use_frm;
repair table proc use_frm;

puis on refait un msql_upgrade

en cas de message d’erreur du type

Running ‘mysql_fix_privilege_tables’…
ERROR 1436 (HY000) at line 1151: Thread stack overrun: 6056 bytes used of a 131072 byte stack, and 128000 bytes needed. Use ‘mysqld --thread_stack=#’ to specify a bigger stack.
FATAL ERROR: Upgrade failed

il suffit de lancer mysqld comme ceci

su - mysql -s /bin/bash -c “/usr/sbin/mysqld --skip-grant-tables --thread_stack=256k”

et puis

pi@raspberrypi ~ $ sudo yunohost service start mysql
Succès ! Service ‘mysql’ démarré avec succès

\O/
:sunny: :smile:

1 Like

Pour vraiment clôturer le problème
J’ai utilisé la procédure décrite ici: https://wiki.labriqueinter.net/doku.php?id=howto:fix_self_corrupt_mysql
Mais comme je suis en Yunohost 2.2, j’ai du adapté les “insert into” i suffit de supprimer les 2 derniers éléments qui sont des nouveauté 2.4.

En fait en réparant les tables (avec use_frm;), elles ont été vidées ils faut donc remettre les valeurs comme expliquer dan le liens.

A+