Ich habe die MySQL-Master-Replikation (unter Debian 6.0.1) gemäß diesen Anweisungen eingerichtet: http://www.neocodesoftware.com/replication/
Ich bin so weit gekommen wie:
mysql > show master status;
Dies führt jedoch leider eher zu folgenden Ergebnissen als zu nützlichen Ergebnissen:
Empty set (0.00 sec)
Das Fehlerprotokoll bei /var/log/mysql.err
ist nur eine leere Datei, daher gibt mir das keine Hinweise.
Irgendwelche Ideen?
Folgendes habe ich /etc/mysql/my.cnf
auf einem Server eingegeben (entsprechend für den anderen Server geändert):
server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
master-host = 10.0.0.3
master-user = <myusername>
master-password = <mypass>
master-connect-retry = 60
replicate-do-db = fruit
log-bin = /var/log/mysql-replication.log
binlog-do-db = fruit
Ich habe Benutzer eingerichtet und kann mit MySQL auf Server A eine Verbindung zur Datenbank auf Server B herstellen, indem ich den obigen Benutzernamen / das Passwort / die IP-Adresse verwende.
show master status
sehe ichEmpty set
. Verdutzt!Antworten:
Interessanterweise läuft MySQL auf meinem PC mit nicht aktivierten Binärprotokollen. Ich habe folgendes gemacht:
Wie gezeigt, da MySQL "Empty Set" für SHOW MASTER STATUS anzeigt; weil die binäre Protokollierung nicht aktiviert war. Das ist angesichts der Konfiguration, die ich habe, offensichtlich.
Stellen Sie zunächst sicher, dass das Fehlerprotokoll einen bestimmten Ordner enthält
Führen Sie dann Folgendes aus:
Führen Sie dann im MySQL-Client diese SQL-Befehle aus
Wenn Sie dieselbe Ausgabe erhalten, die ich zuvor hatte, kann MySQL keine Binärprotokolle in den angegebenen Ordner schreiben. Ihr Dilemma wird, warum MySQL nicht in / var / log schreiben kann.
Dies ist keine vollständige Antwort, aber ich hoffe, das hilft.
quelle
Wenn die MySQL-Version> 5.0 ist, werden Ihre Replikationseinstellungen Master-Host, Master-Benutzer, Master-Passwort und einige andere in Ihrer my.cnf ignoriert. Verwenden Sie CHANGE MASTER TO für die Ersteinrichtung der Replikation.
Vergleichen Sie http://dev.mysql.com/doc/refman/5.1/en/replication-howto-slaveinit.html
quelle
Ihre Einstellung für
log-bin
ist falsch, daher kann MySQL keine binären Protokolle schreiben. Es ist kein Dateiname, sondern ein partielles Dateinamenmuster , dem MySQL ein Verzeichnis voranstellt und eine Sequenznummer und -erweiterung anfügt. Die übliche Einstellung ist so etwas wieÜberprüfen Sie das Handbuch.
quelle
--log-bin=file_name
( dev.mysql.com/doc/refman/5.7/en/… ). Welches Handbuch besagt, dass es kein Dateiname ist?