Lorsque j'ai initialement configuré ma réplication de maître à maître, j'ai utilisé:
binlog-ignore-db=mysql
et ont synchronisé les comptes d'utilisateurs et les octrois manuellement. C'est simplement comment cela a été fait dans le mode d'emploi que j'utilisais à l'époque. Mais y a-t-il une raison pour laquelle je ne devrais pas supprimer cette ligne et permettre à la mysql
base de données de se répliquer également?
Si oui: avant de faire le changement, en plus de vous assurer que toutes les subventions sont les mêmes sur les deux (ou mieux, que la base de données mysql entière est identique), y a-t-il autre chose que je devrais vérifier ou être au courant?
apt-get upgrade
(en fait, le script postinst de mysql-server .deb) exécute desALTER TABLE user
instructions qui ne peuvent pas être répliquées. J'ai posté une solution de travail sur serverfault.com/questions/686025/…Réponses:
Il est tout à fait possible de vous accorder des autorisations mysql sans connaître les commandes SQL GRANT .
Exemple: voici pour créer votre propre utilisateur avec des privilèges complets en utilisant SQL GRANT de n'importe où appelé superdba avec un mot de passe de ClarkKent:
Voici comment procéder sans la commande GRANT:
Tout d'abord, voici mysql.user pour MySQL 5.1.51
Exécutez simplement ces commandes SQL:
Cet INSERT est une instruction SQL légale qui peut atterrir dans un journal binaire. Voulez-vous que quelqu'un exécute cela et ait un mot de passe visible sur le réseau? s'asseoir dans un journal binaire sur le maître? s'asseoir dans un journal de relais sur l'esclave?
Avoir cette directive
empêche de donner des autorisations mysql en utilisant un tel SQL. Cependant, les subventions ne peuvent pas être arrêtées de cette façon. Par conséquent, assurez-vous d'effectuer des subventions comme celle-ci:
pour empêcher les GRANT de passer du maître à l'esclave.
la source
Je n'ai eu aucun problème à répliquer la base de données mysql, mais là encore, mon infrastructure offre un niveau de sécurité supplémentaire avec des pare-feu et des appliances proxy où il est impossible pour quiconque autre que les gens de l'infrastructure de se connecter même sur l'un des ports utilisés par MySQL . Il ajoute un niveau de commodité supplémentaire sachant que vous ne devez accorder des autorisations qu'une seule fois et le faire répliquer. Quand cela se résume à cela, tant que vous avez correctement configuré l'hôte pour ne pas l'exposer à quelqu'un d'autre que celui prévu (par exemple, vous, l'esclave, etc.), tout va bien.
Si vous êtes trop préoccupé par l'homme au milieu des interceptions, il y a toujours la possibilité d'envoyer une réplication via SSL .
la source