Situation
Une brique LIME1 avec un Yunohost 2.7.14.5 sur Debian 8.11 (jessie).
Si j’ai bien compris (c’est pas ma brique), la mise à jours ne s’était pas terminée proprement.
Dans les journaux
Dans le journal ( #more /var/log/syslog
) il y avait les entrées suivantes :
Jul 31 09:42:37 ******** /etc/mysql/debian-start[1270]: Phase 3/6: Running 'mysql_fix_privilege_tables'
Jul 31 09:42:37 ******** /etc/mysql/debian-start[1270]: ERROR 1436 (HY000) at line 574: Thread stack overrun: 4880 bytes used of a 131072 byte stack, and 0 bytes nee
ded. Use 'mysqld --thread_stack=#' to specify a bigger stack.
Jul 31 09:42:37 ******** /etc/mysql/debian-start[1270]: FATAL ERROR: Upgrade failed
Première tentative (on y est presque)
Je me suis inspiré de ce post et tenter ce qui suit.
Pour arrêter le service mysql actuel:
# yunohost service stop mysql
Pour démarrer mysqld avec une option différente:
# su -s /bin/bash -c "/usr/sbin/mysqld --skip-grant-tables --thread_stack=256k" mysql
Et faire tourner le mysql_upgrade:
# su -s /bin/bash -c "/usr/bin/mysql_upgrade" mysql
Qui s’est bien déroulé. Youpie!
Pour ensuite arrêter proprement le mysql démarré précédemment:
# mysqladmin -uroot -p$(cat /etc/yunohost/mysql) -h127.0.0.1 shutdown
TIPS: le mot de passe root pour mysq se trouve dans le fichier /etc/yunohost/mysql
Et redémarrer le service mysql comme d’habitude:
# yunohost service stop mysql
Malheureusement l’erreur était toujours présente!
Jul 31 11:21:47 ******** /etc/mysql/debian-start[3367]: ERROR 1436 (HY000) at line 574: Thread stack overrun: 4880 bytes used of a 131072 byte stack, and 0 bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack.
Deuxième tentative (c’est la bonne)
Donc je me suis dis que j’allais tenter la chose en modifiant la configuration de mysql qui se trouve dans le fichier /etc/mysql/my.cnf
. Ceci pour voir si ça fonctionnerait sans l’option --skip-grant-tables
qui était utilisées plus haut.
Faire une copie avant de le modifier, au cas où:
# cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
Modifier le fichier (# nano /etc/mysql/my.cnf
) pour remplacer la ligne thread_stack = 128K
par
thread_stack = 256K
.
Et redémarrer le service mysql comme d’hab:
# yunohost service stop mysql
# yunohost service start mysql
Et joie, bonheur l’erreur n’est plus!
Et dans (#more /var/log/syslog
) je trouve
Jul 31 11:23:25 ******** /etc/mysql/debian-start[3704]: Phase 6/6: Running 'FLUSH PRIVILEGES'
Jul 31 11:23:25 ******** /etc/mysql/debian-start[3704]: OK
Question
Est-ce grave docteur de laisser le paramètre thread_stack = 256K
au lieu de thread_stack = 128K
dans le fichier /etc/mysql/my.cnf
?