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
ç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
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?
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 …
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
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
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
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.