Je dois configurer un serveur MySQL pour agir en tant que maître de réplication.
J'ai modifié my.cnf pour activer les journaux binaires, mais maintenant, pour recharger la configuration, je dois recharger le service avec /etc/init.d/mysqld restart
. Le problème est que le serveur reçoit plusieurs requêtes par seconde et je ne veux pas perdre toutes les données qui pourraient arriver entre-temps.
Existe-t-il un moyen de recharger le fichier de configuration my.cnf sans redémarrer le service?
mysql
replication
David Espart
la source
la source
/etc/init.d/restart
redémarrerait l'hôte entier. Vous pensez probablement à/etc/init.d/mysqld restart
Réponses:
Plus précisément MySQL:
Les options de my.cnf sont des variables système . Ces variables sont soit dynamiques (peuvent être modifiées lors de l'exécution) soit non dynamiques. Ceux qui sont dynamiques peuvent être modifiés au moment de l'exécution avec la syntaxe de variable SET. Vous pouvez voir les variables avec
SHOW VARIABLES;
. Mais selon ce lien dans le manuel , l'option de journal binaire n'est pas dynamique. Il semble donc que vous deviez redémarrer. Vous voudrez peut-être attendre que quelqu'un qui connaît mysql un peu mieux que moi confirme cela cependant.Démons en général:
sous Linux, /etc/init.d/ contient des scripts qui démarrent et arrêtent les démons (services). Comme ce sont des scripts, vous pouvez les visualiser avec un éditeur de texte. Beaucoup de ces scripts prendront un argument de rechargement. En regardant mon script mysql, recharger comme argument utilise la commande mysqladmin. Donc le manuel de mysqladmin sous rechargement dit:
Il semble donc qu'en général, ce n'est pas pour les changements de configuration, mais plutôt pour les changements de privilèges (Peut-être la commande équivalente de privilèges de vidage?).
la source
J'ai cherché une solution pour cela, mais je n'ai pas été satisfait par l'aide limitée que j'ai trouvée. Un gars a offert un kill -HUP .. n'a pas fonctionné pour moi ..
ce que j'ai fait était de mettre en pause les instances d'apache .. puis de les poursuivre plus tard .. a fonctionné comme un charme sur un serveur où j'ai en moyenne 25 requêtes actives par seconde.
avec sudo (évidemment) pkill -STOP httpd && /etc/init.d/mysqld restart && pkill -CONT httpd
Bien sûr, le nom de votre processus apache et / ou les scripts de redémarrage de mysql peuvent différer du mien, mais vous avez compris l'idée!
la source