Kaip nustatyti „MySQL“ (pagrindinio vergo) replikavimą RHEL, CentOS, Fedora
Šios pamokos tikslas - pateikti jums paprastą išsamų „MySQL“ (pagrindinio-vergo) replikacijos nustatymo RHEL 6.3/6.2/6.1/6/5.8, CentOS 6.3/6.2/6.1/6/5.8 ir „Fedora 17“ vadovą. , 16,15,14,13,12 naudojant naujausią „MySQL“ versiją. Šis vadovas yra specialiai parašytas „CentOS 6.3“ operacinei sistemai, bet taip pat veikia su senesnėmis „Linux“ paskirstymų versijomis su „MySQL 5.x“.
„MySQL“ replikacija yra labai naudinga kalbant apie duomenų saugumą, pertrūkių sprendimą, „Slave“ duomenų bazių atsarginę kopiją, „Analytics“ ir kt. Mes naudojame šiuos dalykus, kad atliktume replikacijos procesą. Jūsų scenarijuje būtų kitaip.
- Veikianti „Linux“ OS kaip „Fedora 17“
- „Master“ ir „Slave“ yra „CentOS 6.3 Linux“ serveriai.
- Pagrindinis IP adresas yra: 192.168.1.1.
- Vergo IP adresas yra: 192.168.1.2.
- „Master“ ir „Slave“ yra tame pačiame LAN tinkle.
- „Master and Slave“ yra įdiegta „MySQL“ versija.
- Pagrindinis leidimas nuotolinius „MySQL“ ryšius 3306. prievade.
Mes turime du serverius, vienas yra „Master“ su IP (192.168.1.1), kitas - „Slave as“ (192.168.1.2). Sąrankos procesą padalijome į du etapus, kad jums būtų lengviau. Pirmame etape sukonfigūruosime pagrindinį serverį, o II - su „Slave“ serveriu. Pradėkime replikacijos sąrankos procesą.
I etapas: konfigūruokite pagrindinį serverį (192.168.1.1) replikavimui
Pirmame etape pamatysime „MySQL“ diegimą, „Replikacijos“ nustatymą ir tada replikacijos patikrinimą.
Pirmiausia tęskite „MySQL“ diegimą naudodami komandą YUM. Jei jau turite „MySQL“ diegimą, galite praleisti šį veiksmą.
# yum install mysql-server mysql
Atidarykite „my.cnf“ konfigūracijos failą naudodami VI redaktorių.
# vi /etc/my.cnf
Skyriuje [mysqld] pridėkite šiuos įrašus ir nepamirškite pakeisti „tecmint“ duomenų bazės pavadinimu, kurį norite pakartoti „Slave“.
server-id = 1 binlog-do-db=tecmint relay-log = /var/lib/mysql/mysql-relay-bin relay-log-index = /var/lib/mysql/mysql-relay-bin.index log-error = /var/lib/mysql/mysql.err master-info-file = /var/lib/mysql/mysql-master.info relay-log-info-file = /var/lib/mysql/mysql-relay-log.info log-bin = /var/lib/mysql/mysql-bin
Iš naujo paleiskite „MySQL“ paslaugą.
# /etc/init.d/mysqld restart
Prisijunkite prie „MySQL“ kaip root vartotojas ir sukurkite vergo vartotoją bei suteikite teises replikacijai. Pakeiskite slave_user vartotoju, o slaptažodis slaptažodžiu.
# mysql -u root -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'your_password'; mysql> FLUSH PRIVILEGES; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 11128001 | tecmint | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) mysql> quit;
Prašome užsirašyti „File“ (mysql-bin.000003) ir „Position“ (11128001) numerius, šių skaičių vėliau prireikė „Slave“ serveryje. Tada pritaikykite „READ LOCK“ duomenų bazėms, kad eksportuotumėte visą duomenų bazės ir pagrindinės duomenų bazės informaciją naudodami „mysqldump“ komandą.
# mysqldump -u root -p --all-databases --master-data > /root/dbdump.db
Kai išmesite visas duomenų bazes, dabar vėl prisijunkite prie „mysql“ kaip root vartotojo ir „unlcok“ lentelės.
mysql> UNLOCK TABLES; mysql> quit;
Įkelkite duomenų bazės iškelties failą į „Slave Server“ (192.168.1.2) naudodami komandą SCP.
scp /root/dbdump.db [email :/root/
Štai ir sėkmingai sukonfigūravome pagrindinį serverį, pereikime prie II etapo.
II etapas: konfigūruokite „Slave Server“ (192.168.1.2) replikavimui
II etape mes įdiegiame „MySQL“, nustatome replikaciją ir tada patikriname replikaciją.
Jei neturite įdiegę „MySQL“, įdiekite jį naudodami komandą YUM.
# yum install mysql-server mysql
Atidarykite „my.cnf“ konfigūracijos failą naudodami VI redaktorių.
# vi /etc/my.cnf
Pridėkite šiuos įrašus skyriuje [mysqld] ir nepamirškite pakeisti pagrindinio serverio IP adreso, tecmint duomenų bazės pavadinimu ir pan., Kuriuos norite pakartoti pagrindiniu serveriu.
server-id = 2 master-host=192.168.1.1 master-connect-retry=60 master-user=slave_user master-password=yourpassword replicate-do-db=tecmint relay-log = /var/lib/mysql/mysql-relay-bin relay-log-index = /var/lib/mysql/mysql-relay-bin.index log-error = /var/lib/mysql/mysql.err master-info-file = /var/lib/mysql/mysql-master.info relay-log-info-file = /var/lib/mysql/mysql-relay-log.info log-bin = /var/lib/mysql/mysql-bin
Dabar importuokite iškelties failą, kurį eksportavome naudodami ankstesnę komandą, ir iš naujo paleiskite „MySQL“ paslaugą.
# mysql -u root -p < /root/dbdump.db # /etc/init.d/mysqld restart
Prisijunkite prie „MySQL“ kaip root vartotojas ir sustabdykite vergą. Tada pasakykite vergui, kur ieškoti magistro žurnalo failo, kurį mes užrašėme ant pagrindinio su SHOW MASTER STATUS komandą kaip Failo (mysql-bin.000003) ir Pozicijos (11128001) numerius. Turite pakeisti 192.168.1.1 į pagrindinio serverio IP adresą ir atitinkamai pakeisti vartotoją ir slaptažodį.
# mysql -u root -p
mysql> slave stop; mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_USER='slave_user', MASTER_PASSWORD='yourpassword', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=11128001; mysql> slave start; mysql> show slave status\G
*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.1 Master_User: slave_user Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000003 Read_Master_Log_Pos: 12345100 Relay_Log_File: mysql-relay-bin.000002 Relay_Log_Pos: 11381900 Relay_Master_Log_File: mysql-bin.000003 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: tecmint Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 12345100 Relay_Log_Space: 11382055 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: 1 row in set (0.00 sec)
„MySQL“ replikacijos tikrinimas pagrindiniame ir „Slave“ serveryje
Tikrai labai svarbu žinoti, kad replikacija veikia puikiai. Pagrindiniame serveryje sukurkite lentelę ir į ją įterpkite keletą reikšmių.
mysql> create database tecmint; mysql> use tecmint; mysql> CREATE TABLE employee (c int); mysql> INSERT INTO employee (c) VALUES (1); mysql> SELECT * FROM employee;
+------+ | c | +------+ | 1 | +------+ 1 row in set (0.00 sec)
Patvirtindamas SLAVE, vykdydamas tą pačią komandą, jis grąžins tas pačias reikšmes ir vergui.
mysql> use tecmint; mysql> SELECT * FROM employee;
+------+ | c | +------+ | 1 | +------+ 1 row in set (0.00 sec)
Viskas, pagaliau sukonfigūravote „MySQL Replication“ atlikdami kelis paprastus veiksmus. Daugiau informacijos galite rasti „MySQL Replication Guide“.