MySQL Репликацията главен-подчинен е процедура, която позволява файловете на базата данни да бъдат репликирани или копирани в един или повече възли в мрежа. Тази настройка осигурява излишък и толерантност към грешки, така че в случай на повреда в главния възел , базите данни все още могат да бъдат възстановени в Slave възел . Това дава спокойствие на потребителите, че всичко няма да бъде загубено в никакъв случай, тъй като реплика на базите данни все още може да бъде извлечена от друг сървър.
В това ръководство ще научите как да изпълнявате MySQL база данни Master-slave репликация на Ubuntu 18.04 система.
Предварителни условия
При настройката ще имаме два сървъра, работещи с Ubuntu 18.04 със следните IP адреси.
Главен сървър:10.128.0.28 Подчинен сървър:10.128.0.29
Нека сега да се потопим и да видим как можем да конфигурираме Master-slave настройка на репликация в Ubuntu .
Стъпка 1:Инсталирайте MySQL на главни и подчинени възли
Ubuntu хранилищата съдържат версия 5.7 на MySQL . За да се възползвате от всички нови функции и да избегнете потенциални проблеми, трябва да инсталирате най-новата версия на MySQL. Но първо, нека актуализираме двата възела с помощта на следната команда apt.
$ sudo apt актуализация
За да инсталирате MySQL и на двата възела, изпълнете командата.
$ sudo apt инсталирайте mysql-server mysql-client
След това отворете mysql конфигурационен файл.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
На Главния възел , превъртете и намерете bind-address
атрибут, както е показано по-долу.
bind-address =127.0.0.1
Променете адреса за обратна връзка, за да съответства на IP адреса на главния възел .
bind-address =10.128.0.28
След това посочете стойност за server-id
атрибут в [mysqld]
раздел. Избраният от вас номер не трябва да съвпада с друг номер на идентификатор на сървъра. Нека присвоим стойност 1
.
идентификатор на сървъра =1
В самия край на конфигурационния файл копирайте и поставете редовете по-долу.
log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log /mysql/mysql-relay-bin.index
Излезте от конфигурационния файл и рестартирайте услугата MySQL, за да влязат в сила промените на главния възел.
$ sudo systemctl рестартирайте mysql
За да проверите дали MySQL сървърът работи според очакванията, издайте командата.
$ sudo systemctl състояние mysql
Перфектно! MySQL сървърът работи според очакванията!
Стъпка 2:Създайте нов потребител за репликация на главния възел
В този раздел ще създадем потребител за репликация в главния възел . За да постигнете това, влезте в MySQL сървъра, както е показано.
$ sudo mysql -u корен -p
След това продължете и изпълнете заявките по-долу, за да създадете потребител на реплика и да предоставите достъп до подчинения за репликация. Не забравяйте да използвате своя IP адрес.
mysql> СЪЗДАВАНЕ НА ПОТРЕБИТЕЛ 'replication_user'@'10.128.0.29 ' ИДЕНТИФИЦИРАН ОТ 'replica_password';mysql> ПРЕДОСТАВЯНЕ НА РЕПЛИКАЦИЯ ДОБРЕ НА *.* НА 'replication_user '@'10.128.0.29 ';
След това изпълнете следната команда.
mysql> ПОКАЖЕТЕ ГЛАВНИЯ СТАТУС\G
Резултатът трябва да бъде подобен на това, което можете да видите по-долу.
Бъдете внимателни и обърнете внимание на mysql-bin.000002
стойност и ID на позиция 1643
. Тези стойности ще бъдат от решаващо значение при настройката на подчинения сървър .
Стъпка 3:Конфигурирайте MySQL Slave сървър
Отидете до подчинения сървър и както направихме с Главния сървър , отворете конфигурационния файл на MySQL.
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Точно като главния сървър , продължете да редактирате следните редове.
bind-address =10.128.0.29
Както и преди, посочете стойност за server-id
атрибут в [mysqld]
раздел. Този път изберете друга стойност. Да продължим с 2
.
идентификатор на сървъра =2
Отново поставете редовете по-долу в самия край на конфигурационния файл.
log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log /mysql/mysql-relay-bin.index
След това рестартирайте MySQL сървъра на подчинен възел.
$ sudo systemctl рестартирайте mysql
След като приключите, запазете и излезте от текстовия редактор
След това влезте в обвивката на MySQL, както е показано.
$ sudo mysql -u корен -p
В тази стъпка ще трябва да направите някаква конфигурация, която ще позволи на подчинения сървър за да се свържете с главния сървър . Но първо спрете подчинените нишки, както е показано.
mysql> STOP SLAVE;
За да разрешите подчинения сървър за репликиране на Главния сървър , изпълнете командата.
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE ='mysql-bin.000002', MASTER_LOG>4Ако сте достатъчно запалени, ще забележите, че сме използвали
mysql-bin.00002
стойност и идентификатор на позиция1643
показва по-рано след създаване на потребител за подчинена репликация.Освен това са използвани IP адресът на главния сървър, потребителят за репликация и паролата.
По-късно стартирайте нишката, която сте спрели по-рано.
mysql> СТАРТИ РАБОТА;Стъпка 4:Проверете репликацията на MySQL Master-Slave
За да проверим дали настройката наистина работи според очакванията, ще създадем нова база данни на главния и ще проверим дали е репликирана на MySQL Slave сървъра.
Влезте в MySQL в Главния сървър .
$ sudo mysql -u корен -pНека създадем тестова база данни. В този случай ще създадем база данни, наречена replication_db .
mysql> CREATE DATABASE replication_db;Сега влезте във вашия MySQL екземпляр в подчинения сървър .
$ sudo mysql -u корен -pСега избройте базите данни с помощта на заявката.
mysql> ПОКАЖЕТЕ БАЗА ДАННИ;Ще забележите базата данни, която сте създали на главната е репликиран на подчинен . Страхотно! Вашата MySQL главна-подчинена репликация работи според очакванията! Вече можете да бъдете сигурни, че в случай на неизправност, копията на файловете на базата данни ще бъдат репликирани на подчинения сървър.
Заключение
В това ръководство научихте как да настроите MySQL Master-slave настройка за репликация на Ubuntu 18.04 .