Als ich meine Master-to-Master-Replikation ursprünglich eingerichtet habe, habe ich Folgendes verwendet:
binlog-ignore-db=mysql
und haben die Benutzerkonten und Berechtigungen manuell synchronisiert. Dies ist einfach so, wie es in der Anleitung gemacht wurde, die ich zu der Zeit benutzte . Aber gibt es einen Grund, warum ich diese Zeile nicht entfernen und die mysql
Datenbank selbst auch replizieren lassen sollte?
Wenn ja: Bevor ich die Änderung vornehme, sollte ich nicht nur sicherstellen, dass alle Berechtigungen für beide gleich sind (oder besser gesagt, dass die gesamte MySQL-Datenbank identisch ist), sondern auch noch etwas überprüfen oder beachten?
apt-get upgrade
(eigentlich das mysql-server .deb postinst-Skript)ALTER TABLE user
Anweisungen ausführt , die nicht repliziert werden können. Ich habe eine funktionierende Lösung unter serverfault.com/questions/686025/…Antworten:
Es ist durchaus möglich, sich selbst MySQL-Berechtigungen zu geben, ohne die SQL GRANT-Befehle zu kennen .
Beispiel: Hier ist das Erstellen eines eigenen Benutzers mit vollständigen Rechten unter Verwendung von SQL GRANT von einem beliebigen Ort mit dem Namen superdba und dem Kennwort ClarkKent:
So können Sie dies ohne den Befehl GRANT ausführen:
Hier ist zunächst mysql.user für MySQL 5.1.51
Führen Sie einfach diese SQL-Befehle aus:
Diese INSERT-Anweisung ist eine zulässige SQL-Anweisung, die in einem Binärprotokoll landen kann. Möchten Sie, dass jemand diese Funktion ausführt und ein sichtbares Kennwort im Netzwerk verwendet? in einem binären Protokoll auf dem Master sitzen? in einem Relais-Log auf dem Slave sitzen?
Mit dieser Richtlinie
verhindert die Weitergabe von MySQL-Berechtigungen mit solchen SQL. GRANTs können jedoch nicht auf diese Weise gestoppt werden. Stellen Sie daher sicher, dass Sie Zuschüsse wie folgt durchführen:
um zu verhindern, dass die GRANTs von Master zu Slave gelangen.
quelle
Ich hatte keine Probleme mit der Replikation der MySQL-Datenbank, aber andererseits verleiht meine Infrastruktur mit Firewalls und Proxy-Appliances eine zusätzliche Sicherheitsstufe, bei der es nur den Infrastruktur-Leuten möglich ist, eine Verbindung über einen der von MySQL verwendeten Ports herzustellen . Dies erhöht die Benutzerfreundlichkeit, da Sie Berechtigungen nur einmal erteilen und sie replizieren müssen. Wenn es darauf ankommt, sollte es Ihnen gut gehen, solange Sie den Host so eingestellt haben, dass er niemand anderem als dem beabsichtigten (z. B. Ihnen, dem Sklaven usw.) ausgesetzt wird.
Wenn Sie sich zu sehr mit Menschen in der Mitte des Abhörens beschäftigen, besteht immer die Möglichkeit, Replikationen über SSL zu senden .
quelle