Hej Gruppe.
Jeg ville høre om en der kunne forklare mig dette issue jeg har her.
Jeg har 3 Databaser som jeg replikerer hjem.Men har et problem omkring selve replikeringen jeg ikke lige kan oiverse.
Normalt arbejder jeg via Workbench eller MySQL konsol.
Når jeg udfører følgende statement i myssql konsol:
INSERT INTO Operational_Data.Repl_Test(ID,Number) VALUES ('1','2');
Indsættes data og der replikeres fra Master til Slave.
Udfører jeg denne kommando fra Workbench - Indsættes data - MEN der replikeres ikke
Bruger jeg istedet disse kommandoer fra Workbench:
Use Operational_Data
INSERT INTO Repl_Test(ID,Number) VALUES ('1','2');
Indsættes data og der replikeres data videre.
Nu er det således at jeg vil mene det er 2 ens kommandoer, og alligevel ikke.
Der er lavet et webinterface der skal indsætte data i DB og dette skal replikeres hjem. og har ud fra dette fundet frem til dette problem, Men jeg skal indrømme at jeg ikke kan se hvorfor der er forskel på disse 2 kommandoer reelt
13-10-2007
Nu er jeg ikke nogen SQL-haj, men har dog brugt det af og til.
Dit sidste eksempel (Workbench) ligner mere noget, jeg genkender, mens det første (MySQL konsol) med sin . notation mere ligner et interface fra Pascal eller lign.
For det første vil jeg sige, at du ikke kan forvente samme syntaks fra forskellige interfaces, og for det andet ville jeg bruge den syntaks, der virker alle, eller de de fleste steder, hvis jeg skulle vælge. Ingen grund til at gøre det forskelligt, hvis den samme syntaks virker.
17-05-2008
Evt oplys version af mysql / workbench.
Jeg er ret sikker på begge dele burde virke begge steder.
Men jeg forstår ikke hvad du mener med indsættes data og replikeres videre, samt at den indsætter data og ikke replikerer videre?
Samt nogen fejl msg?
05-12-2009
Der står noget om det her: https://dba.stackexchange.com/a/68376
20-04-2005
Hey Alle
Tak for svarene - men er ikke kommet videre end som så
Version:
Mysql 8.0.16
Workbench 8.0.16 ( hedeer den i download) https://dev.mysql.com/downloads/workbench/
Meningen er vi indsætter noget data via et webinterface. Det data vi indsætter - kommer i tabellen på MASTER - Men det replikeres ikke videre til slaves.
Vores syntaks i webinterfacet siger følgende:
INSERT INTO Operational_Data.Repl_Test(ID,Number) VALUES ('1','2');
Dette data replikeres ikke af en eller anden årsag. jeg har så undersøgt tingene og testet det hele igennem workbench / konsol
Indsætter jeg den samme data igennem Workbench med samme kommando som Webinterfacet - replikeres det stadigvæk ikke.
Men skriver jeg det så sådanne:
Use Operational_Data
INSERT INTO Repl_Test(ID,Number) VALUES ('1','2');
Så replikeres al data som forventet. i Min verden er det nøjagtig samme syntaks ( altså selve kommandoen er den samme) så hvad er det der gør at en benævnelse Database.tabel ikke replikeres, Når nu data reelt kommer i den tabel og vi kan se der komemr data ind.
Så tænker jeg hmmm det er nok replikeringen der fejler - men så snart jeg angiver use DB først er der ingen problemer.
I min verden giver det ikke meningen at man fra et webinterface skal bruge USE kommandoen først inden du kan indsætte data der skal replikeres
og det sjove syntes jeg jo ligesom at der slet ikke kommer fejl i logfiler omkring manglende replikeriing.
Jeg er enig i at det burde fungere med begge statements - men jeg kan desværre bare konstatere at det ikke er tilfældet.
For selvom det data der kommer fra webinterfacvet indsættes i databasen, kan jeg ikke forstå hvorfor det ikke skulle replikeres.
Men som linket antyder er det noget med den default database der er valgt, men giver INGEN mening for mig at man skal bruge USE komandoen først inden man kan indsætte data der replikeres videre
14-06-2006
For mig virker det 100% som om, du benytter dig af replicate-db-do eller replicate-db-ignore ? eller måske endda begge?
Har du disse i dine configs ? I så fald, så er dette bare én af de pitfalls, man kan ryge i, og én af flere grunde til dette frarådes.
Benytter du dig replicate-do-db så replikerer den KUN det der sker nede i den DB du arbejder i (hvis denne db altså er specificeret), og da du arbejder i master, vil det ikke blive replikeret.
Ved at du skriver "use Operational_Data;" , så arbejder du i denne nu, hvorfor det virker, og IKKE i master.
https://dev.mysql.com/doc/refman/5.7/en/replicatio...
https://dev.mysql.com/doc/refman/5.7/en/replicatio...
20-04-2005
jeg har ikke replicate-db-do eller repliicate-db-ignore i mine setup, da det netop er en af de faldgruber man kan ryge i - men nej var klar over disse og endnu mere derfor det ikke giver mening!