Репликацията на данни е процес на копиране на вашите данни на множество сървъри, за да се подобри наличността на данни и да се подобри надеждността и производителността на дадено приложение. В MySQL репликация, данните се копират от база данни от главния сървър към други възли в реално време, за да се гарантира последователност на данните, както и за осигуряване на архивиране и резервиране.
В това ръководство ние демонстрираме как можете да настроите MySQL (Master-Slave ) репликация в базирани на RHEL дистрибуции като CentOS , Fedora , Rocky Linux, и AlmaLinux .
Настройка на MySQL репликация
И така, ето нашия MySQL настройка на лабораторията за репликация.
MySQL Master - 10.128.0.14MySQL Slave - 10.128.15.211
Да започнем...
Стъпка 1:Инсталирайте MySQL на главен и подчинен сървър
Ще започнем с инсталирането на MySQL база данни както на главената ироби сървъри.
$ sudo dnf инсталирайте @mysql
След като инсталацията приключи, направете точка за стартиране на сървъра на базата данни.
$ sudo systemctl стартирайте mysqld
След това го активирайте, за да стартира при стартиране на системата или при рестартиране.
$ sudo systemctl активира mysqld
След това потвърдете, че MySQL сървърът на базата данни работи, както е показано:
$ sudo systemctl status mysqld
Стъпка 2:Защитете MySQL на главен и подчинен сървър
Следващата стъпка е да защитите MySQL база данни както на главената ироби сървъри. Това е така, защото настройките по подразбиране са несигурни и съдържат някои вратички, които лесно могат да бъдат използвани от хакери.
Така че, за да втвърдите MySQL, изпълнете командата:
$ sudo mysql_secure_installation
Първо, ще трябва да настроите MySQL root парола. Не забравяйте да предоставите силна root парола, за предпочитане с повече от 8 знака, които са комбинация от главни, малки, специални и цифрови знаци.
За останалите подкани въведете 'Y'
за да настроите сървъра на базата данни до препоръчаните настройки.
След като приключите с инсталирането и втвърдяването на MySQL на главния и подчинения възел, следващото е да конфигурирате главния възел.
Стъпка 3:Конфигурирайте главния възел (сървър)
Следващата стъпка е да конфигурирате Master възел и предоставяне на подчинен достъп на възел до него. Първо, трябва да редактираме mysql-server.cnf конфигурационен файл.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Добавете следните редове под [mysqld]
раздел.
bind-address =10.128.0.14server-id =1log_bin =mysql-bin
След като сте готови, запазете промените и излезте. След това рестартирайте MySQL сървър.
$ sudo sysemctl рестартирайте mysqld
След това влезте в MySQL черупка.
$ sudo mysql -u корен -p
Изпълнете следните команди, за да създадете потребител на база данни, който ще се използва за свързване на главния и подчинения за репликация.
mysql> СЪЗДАВАНЕ НА ПОТРЕБИТЕЛ 'replica'@'10.128.15.211' ИДЕНТИФИЦИРАН ОТ '[email protected]';mysql> ПРЕДОСТАВЯНЕ НА РЕПЛИКАЦИЯ СЛАВ НА *.*ДО 'replica'@'10.128.15.21';1
Приложете промените и излезте от MySQL сървър.
mysql> ПРОБИВАНЕ НА ПРИВИЛЕГИИ;mysql> ИЗХОД;
Проверете състоянието на главния.
mysql> ПОКАЗВАНЕ НА ГЛАВНИЯ СТАТУС\G
Обърнете внимание на името на файла и позицията. Това ще ви е необходимо по-късно, когато настройвате подчинения за репликация. В нашия случай имаме името на файла като mysql-bin.000001
и Позиция 1232 .
Стъпка 4:Конфигурирайте подчинения възел (сървър)
Сега се върнете към подчинения възел. Още веднъж редактирайте mysql-server.cnf конфигурационен файл.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf
Както преди, поставете тези редове под [mysqld]
раздел. Променете IP адреса, за да съответства на IP на подчинения. Също така задайте различен идентификатор на сървъра . Тук сме му присвоили стойността на 2 .
bind-address =10.128.15.211server-id =2log_bin =mysql-bin
Запазете промените и излезте от файла. След това рестартирайте сървъра на базата данни.
$ sudo systemctl рестартирайте mysqld
За да конфигурирате Slave възел за репликиране от главния възел, влезте в MySQL сървъра на подчинения.
$ sudo mysql -u корен -p
Първо и най-важно, спрете нишките за репликация:
mysql> СТОП НА ПЛАВАНЕТО;
След това изпълнете следната команда, за да конфигурирате подчинения възел да репликира бази данни от главния.
mysql> ПРОМЯНА НА ГЛАВНИЯ КЪМ MASTER_HOST='10.128.0.14' , MASTER_USER='replica' , MASTER_PASSWORD='[email protected]' , MASTER_LOG_FILE='mysql-bin.000001'.Имайте предвид, че MASTER_LOG_FILE и MASTER_LOG_POS флаговете съответстват на файла и Позиция стойности от Master възел в края на стъпка 1.
MASTER_HOST , MASTER_USER, и MASTER_PASSWORD съответстват съответно на главния IP адрес, потребителя за репликация и паролата на потребителя за репликация.
След това стартирайте нишките за подчинена репликация:
mysql> СТАРТИ РАБОТА;Стъпка 4:Тестване на MySQL Master-Slave репликация
Сега, за да проверите дали репликацията между главния и подчинения възел работи, влезте в сървъра на базата данни MySQL на главния възел:
$ sudo mysql -u корен -pСъздайте тестова база данни. Тук нашата тестова база данни се нарича replication_db .
mysql> СЪЗДАВАНЕ НА БАЗА ДАННИ replication_db;Проверете съществуването на базата данни.mysql> ПОКАЗВАНЕ НА БАЗА ДАННИ;Сега преминете към подчинения възел, влезте в MySQL сървъра и потвърдете, че replication_db базата данни е налице. От изхода по-долу можем да видим, че базата данни присъства. Това е потвърждение, че репликацията е извършена от главния към подчинения възел.
mysql> ПОКАЗВАНЕ НА БАЗА ДАННИ;И това е всичко, ние успешно демонстрирахме как можете да настроите MySQL Модел на репликация главен-подчинен, който може да репликира бази данни от главния възел към подчинения възел.