Comment puis-je exécuter une requête dans MYSQL sans l'écrire dans le journal binaire
-
23-10-2019 - |
Question
Je veux exécuter une importation d'un fichier volumineux en MySQL. Cependant, je ne veux pas écrit dans le journal binaire, car l'importation prendra beaucoup de temps, et faire les esclaves de tomber loin derrière. Je préférerais l'exécuter sur les esclaves séparement, après le fait, parce que ce sera beaucoup plus facile sur le système. Le tableau en question est une nouvelle, et donc je ne vraiment pas à vous soucier de sortir de la synchronisation, en tant que maître et tous les esclaves auront les mêmes données à la fin, car ils vont tous importer le même fichier finalement. Je veux aussi ne pas modifier les répliquée-ignore- * ou des options binlog_ignore- de *, car ils nécessitent un redémarrage des serveurs en question. Est-il possible d'exécuter une requête sans une seule, il écrit au journal binaire?
Je connais déjà la réponse, mais je ne pouvais pas trouver très facilement sur le net, alors je laisse quelqu'un poster la réponse à obtenir des points de rep. S'il n'y a pas de réponse dans un peu de blanc je posterai la réponse que je trouve.
La solution
Vous pouvez utiliser la sql-log- la variable de session de bac pour désactiver la journalisation pour la session en cours. Il suffit simplement de saisir:
SET sql_log_bin = 0;
et toutes les requêtes sur votre session en cours ne seront pas envoyés dans le journal binaire. Si vous voulez revenir en arrière d'enregistrement binaire, exécutez:
SET sql_log_bin = 1;
Ceci est seulement pour vous la session actuellement en cours d'exécution. Tous les autres requêtes de toutes les autres connexions seront toujours continué à être connecté. En outre, vous devez disposer des privilèges SUPER pour que cela fonctionne.
Autres conseils
Si vous voulez faire du cli, essayez cela, il a travaillé pour moi:
$ mysqldump old_DB | mysql --init-command="SET SQL_LOG_BIN = 0;" new_DB
possible que le PARAM "init-commande" a été ajouté dans une version plus récente de MySQL.