Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да настроите MySQL репликация в RHEL, Rocky и AlmaLinux

Репликацията на данни е процес на копиране на вашите данни на множество сървъри, за да се подобри наличността на данни и да се подобри надеждността и производителността на дадено приложение. В 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 Модел на репликация главен-подчинен, който може да репликира бази данни от главния възел към подчинения възел.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете само дата от поле DATETIME в MySQL?

  2. Как да импортирате MySQL бази данни в командния ред

  3. Грешка при неправилна стойност на низа в MySQL при запазване на Unicode низ в Django

  4. COUNT(*) винаги ли връща резултат?

  5. Отстраняване на неизправности при репликацията на MySQL:Част втора