web-dev-qa-db-fra.com

Désactiver la journalisation binaire MySQL avec la variable log_bin

Le fichier de configuration MySQL par défaut /etc/mysql/my.cnf est installé par un paquet debian en utilisant APT définit souvent la variable log_bin, donc binlog est activé:

log_bin = /var/log/mysql/mysql-bin.log

Quand je veux désactiver la journalisation binaire sur une telle installation, commentez la ligne dans my.cnf fonctionne bien sûr, mais je me demande s'il existe un moyen de désactiver la journalisation binaire en définissant explicitement log_bin sur OFF, dans un style Debian, je veux dire dans un fichier inclus comme /etc/mysql/conf.d/myCustomFile.cnf, donc my.cnf par défaut n'est pas modifié et peut être facilement mis à jour par apt, si nécessaire.

J'ai essayé "log_bin = 0", "log_bin = OFF" ou "log_bin =" mais rien ne fonctionne ...

39
Nicolas Payart

C'est une vieille question, mais elle est apparue lors d'une recherche alors que j'essayais de me rafraîchir la mémoire sur le nom de l'option correcte et maintenant que j'ai compris, j'ajoute les détails ici.

La partie clé de la question est:

Je veux dire dans un fichier inclus comme /etc/mysql/conf.d/myCustomFile.cnf

Vous pouvez le faire à partir d'un fichier d'options inclus en utilisant l'option skip-log-bin. Par exemple. vous pourriez créer /etc/mysql/conf.d/disable_binary_log.cnf avec le contenu suivant:

[mysqld]
skip-log-bin

Vous pouvez ajouter skip- comme préfixe à d'autres options pour les désactiver de cette manière également.

48
John Dalton

Dans MySQL 8, c'est l'option disable_log_bin qui doit être fournie sans aucun paramètre dans le my.cnf fichier dans le [mysqld] section.

[mysqld]
disable_log_bin
some-other-option = any-value
9
Peter VARGA

Vous pouvez le voir comme ceci, log_bin ne devrait pas accepter les paramètres, soit vous mettez:

log_bin

ou rien du tout, car c'est un paramètre booléen.

Cependant, si une valeur est définie, les journaux sont activés et la valeur interprétée comme le nom de base binlog.

Les options de journalisation ont l'habitude de ne pas être trop intuitives et de changer leur format de version en version (je vous regarde, journal lent).

4
jynus

Si vous ne répliquez pas, vous pouvez désactiver le binlogging en modifiant votre fichier my.ini ou my.cnf. Ouvrez votre my.ini ou /etc/my.cnf (/etc/mysql/my.cnf), entrez:

# vi /etc/my.cnf

Recherchez une ligne qui lit "log_bin" et supprimez-la ou commentez-la comme suit:

#log_bin = /var/log/mysql/mysql-bin.log

Vous devez également supprimer ou commenter les lignes suivantes:

#expire_logs_days = 10

#max_binlog_size = 100M

Fermez et enregistrez le fichier. Enfin, redémarrez le serveur mysql:

# service mysql restart

4
Mahesh Patil

Depuis le Manuel pour MariaDB ( https://mariadb.com/kb/en/library/activating-the-binary-log/ )

Si vous ne fournissez pas de nom (qui peut éventuellement inclure un chemin absolu), la valeur par défaut sera datadir/log-basename-bin, datadir/mysql-bin ou datadir/mariadb-bin

Cependant,

Les clients disposant du privilège SUPER peuvent désactiver et réactiver le journal binaire pour la session en cours en définissant la variable sql_log_bin.

SET sql_log_bin = 0;

SET sql_log_bin = 1;

Cependant, si vous dites qu'il a été activé par défaut lors de l'installation, vous devez le désactiver en supprimant la ligne de votre fichier my.cnf puis redémarrer mysqld. Vous pouvez également purger les données binaires ( https://dev.mysql.com/doc/refman/5.6/en/purge-binary-logs.html )

PURGE BINARY LOGS

Enfin, comme le mentionne la réponse de l'autre affiche, dans MySQL 8 il y a une option pour désactiver explicitement la journalisation binaire du fichier de configuration en utilisant le --skip-log-bin ou --disable-log-bin options dans la section [mysqld] du fichier de configuration.

Pour désactiver la journalisation binaire, vous pouvez spécifier le --skip-log-bin ou --disable-log-bin option au démarrage. Si l'une de ces options est spécifiée et --log-bin est également spécifié, l'option spécifiée ultérieurement a priorité. Lorsque la journalisation binaire est désactivée, la variable système log_bin est définie sur OFF.

3
jonnyjandles

Comme je le sais après la mise à jour d'un package, le fichier de configuration doit être l'ancien, donc après la mise à jour, vous avez les mêmes fichiers de configuration. Sinon, vous pouvez créer un deuxième fichier de configuration dans le chemin $ MYSQL_HOME/my.cnf. Celui-ci est pour les options spécifiques au serveur et, comme je le sais, écrasera les paramètres dans le fichier global /etc/my.cnf

0
Tamas Szasz