Konfigurera MySQL databas replikering
Det handlar alltid om data. Vad är det för användning av systemet utan de uppgifter som det bygger på?
Upprätta en databas replikering är ett av många steg som bör vidtas för att bevara uppgifter, förebygga förlust och göra återställning lättare.
Lyckligtvis är det lätt med MySQL. Så låt oss anta att vi har två servrar som kör MySQL, kallas en host1 och den andra host2.
Replikering kan vara antingen master-master eller master-slave. Med en master-slave-replikering replikerar slaven alltid vad master databasen körs. I master-master-replikering, båda databaserna synkroniseras med varandra.
För denna tutorial är en master-slav (här host1 och host2 respektive) scenariot undersöks.
Först av allt, öppna MySQL konfigurationsfil på host1 (vanligtvis i / etc / my.cnf på Linux, och c: \ windows \ my.ini på fönster), och avkommentera (ta bort hash av) följande rad:
# Skip-nätverk
För det andra måste du ange den fil där befälhavaren (host1) bör log (skriv) de frågor det utför. Detta gör det möjligt slav (host2) att läsa dessa frågor och köra dem också. Som sådan, lägg till en rad som:
log-bin = / sökväg / till / mysql-bin.log
där värdet ovan är sökvägen till filen där MySQL borde göra loggningen. Du kan mycket väl skapa en separat katalog eller använd mysql installationen katalog (t.ex. C: \ Program Files \ MySQL \ på fönster eller / var / lib / MySQL på Linux)
Sedan måste du ange namnet på databasen i fråga. Så om du ställer in replikering för en av dina MySQL-databaser som kallas "work_data", då är detta den linje du behöver för att lägga till din MySQL-config:
binlog-do-db = work_data
Slutligen måste du ange ett server-ID, som säger att detta är huvudservern
server-id = 1
Spara config filen och avsluta.
Nu måste du ge host2 tillstånd för att replikera data. Som sådan behöver en MySQL fråga skall utfärdas på master.
Så på host1, logga in på MySQL-prompten (mysql-u root-pyour_root_password) (eller phpMyAdmin, etc. ... vad du än använder), och utfärda följande uttalande:
bevilja replikering slav på *.* att "användarnamn'@'%' identifieras med 'lösenord';
Se till att ersätta användarnamn och lösenord med en referens som du väljer. Håll den enkla citattecken dock.
%-Tecknet betyder att slaven kan ansluta från valfri värd. Om du vill att det ska vara säkrare, ersätta den med host2 (slavens värdnamn).
När allt ovanstående är gjort, starta om MySQL tjänsten (service mysqld startar (Linux) eller, net stop mysql, net start mysql (på Windows)).
Om databasen hade uppgifterna tidigare, se till att du dumpa den och ladda den på slaven innan du gör något av ovanstående. Dumpning är enkelt och kan göras genom cd'ing till MySQL-bin katalogen och utfärdande:
mysqldump-Q-u root-pyour_root_password databasnamn> database_dump.sql
(Ersätter lösenord och databasnamn med rätt inloggning). Hela databasen kommer nu att i filen som heter database_dump.sql
För att importera den på host2, cd till MySQL-bin katalogen och fråga:
mysql-u root-pyour_root_password databasnamn </ sökväg / till / filen / fil / database_dump.sql
MySQL konfigurationsfil på host2 bör ha följande rader:
server-id = 2
master-host = host1
master-user = användarnamn
master-password = lösenord
master-port = 3306
där host1 är befälhavarens värdnamn / IP och användarnamn och lösenord är de referenser som du använde när de beviljar replikering tillgång några steg ovan. 3306 är porten MySQL körs på (vilket är standard)
Börja sedan slaven processen på host2 genom att ge vid MySQL-prompten:
startar slav;
För att vara säker replikering fungerar, utfärda följande SQL-fråga på host1:
visa slav status \ G
(Slave_SQL_Running och Slave_IO_Running bör rapportera 'Ja')
Lycka till

Great, precis vad jag behövde. Nu ... Är det möjligt att ange flera master-enheter att replikera på bara en slav server?. Jag frågar detta eftersom im försöker upprätta en Active-Stanby topologi där, om en av Masters misslyckas kan ersätta tillfälligt av Slave servern. Tack
Kära Robert,
Vad sägs om att köra flera MySQL-tjänster på slaven värd? Varje skulle köras på en annan port och skulle vara beroende av en annan mästare.
Thats Genius! , Även om jag måste ändra hur användarna ansluter till databasen för att göra en smidig övergång i händelse av ett misslyckande.
Du kan konfigurera en lokal DNS-tjänst, och gör användare använder ett hostname (i normala fall pekar på master) få tillgång till din tjänst.
I händelse av fel, ändrar du helt enkelt DNS-register över som värdnamn för att peka på slaven maskinen.
Användare skulle inte märka det förändras om du ändrar IP som värdnamnet beslutar.
[...] Gör det möjligt att lägga till eller ta bort noder från klustret utan att behöva konfigurera clients.Tips och tricks Konfigurera MySQL databas replicationSo låt oss anta att vi har två servrar som kör MySQL, kallas en host1 och den andra host2. ... Om du [...]
Jag har läst några av de artiklar på din hemsida nu och jag gillar verkligen din stil att blogga. Jag lade till den till mina favoriter bloggsida lista och kommer att kontrollera tillbaka snart. Kolla gärna in min hemsida också och låt mig veta vad du tycker.
naturliga suppliments