[MySQL] unterschiedliche binlogs, aber keine Idee wo der Unterschied herkommt

dreamdiver

Mitglied
Hallo nochmal,

wir haben jetzt die Unterstriche in den Datenbanknamen durch ein "-" ersetzt.

z.B. "replication_master" ist jetzt "replication-master" und genauso slave

Replikation funktioniert lokal auf meinen Testservern
Meine lokalen Server haben:
Master
MySQL:
Server Version: 5.1.61-0ubuntu0.10.04.1-log

Slave:
MySQL:
Server Version: 5.1.62-0ubuntu0.10.04.1

Meine lokale binlog Ausgabe ist:
öO¢òZ@std!replication-masterUPDATE `bilderimages_event` SET `image_name`='aaa-bumbum' WHERE `image_id`=5 LIMIT 1

Replikation funktioniert nicht online
Die online Server haben:
Master:
MySQL:
Server Version: 5.1.41-3ubuntu12.10-log

Slave:
MySQL:
Server Version: 5.1.52

Soweit ich weiß muss der Slave die neuere MySQL Version haben, damit die Replikation läuft.

Online Server binlog Ausgabe ist:
æöO¼ ¸@std!usr-web0-1UPDATE `usr-web0-1`.`bilderimages_event` SET `image_name` = 'aaa-ggg' WHERE `bilderimages_event`.`image_id` = 5

Der Unterschied ist klein, aber ich würde gern wissen: Könnte der Unterschied der Grund dafür sein das mein online Slave die Änderungen vom Master nicht übernimmt?

Wo ist der Grund für die unterschiedlichen binlogs?
binlog_format ist "STATEMENT" auf allen Servern...
Ermittelt über:
mysql> SHOW VARIABLES;

Ich hoffe es hat jemand eine Idee.
 
Hi,

ich habe von woanders den Hinweis bekommen, dass ich mal in den relay-log gucken soll. Bisher hatte ich mir nur den binlog des Servers selbst angeguckt. Im relay log habe ich festgestellt, dass da gar nichts ankommt, wenn ich in der Master Datenbank replication-master eine Änderung mache.

Inzwischen kann ich aber sagen, dass dieser query das Problem ist, weil ich folgende Fehlermeldung bekomme:
Error 'Table 'replication-master.test' doesn't exist' on query. Default database: 'replication-slave'. Query: 'UPDATE `replication-master`.`test` SET `testtext` = 'huhu' WHERE `test`.`id` = 1'

Last Error im slave status.

Das binlog hat Einträge wie:
@std!replication-masterUPDATE `replication-master`.`test` SET `testtext` = 'huhu' WHERE `test`.`id` = 1

lokal bei mir funktioniert das alles, aber auch nur, weil ich dort dieses "`replication-master`." nicht mit drin habe. Bisher konnte ich aber noch keinen Unterschied ausmachen der dafür verantwortlich ist.

Also muss ich im Grunde "nur" wissen wie man das "`replication-master`." entfernt, weil das das Problem in diesem query ist.
"@std!replication-master" scheint sowas wie "use database" zu sein, also wird "`replication-master`." in dem query nicht benötigt bzw. verhindert die Ausführung, weil es zu einem Fehler führt.

Ich habe die binlog queries durch Änderung der Daten auf dem Master über phpMyAdmin erzeugt.

Master Server Config (my.cnf):
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = replication-master

Slave Server Config (my.cnf):

replicate_rewrite_db = "replication-master->replication-slave"
replicate_do_db = "replication-slave"

server_id = 2
master_host = xxx.xxx.xxx.xxx
master_port = 3306


master_user = web0-replication
master_password = secret

I hoffe es hat noch jemand eine Idee.
 

Neue Beiträge

Zurück