Рэпликация мускула

Рэпликация мускула

Олександр

Первым делом серверов с мускулом у нас должно быть как минимум два.

Можно конечно вместо второго использовать /dev/null , но при таком раскладе придется потом за репликой лезть туда же и самому.

Першим кроком у нас будет инсталяция самого скьюэля на каждом сервере командой:

# sudo apt install mysql-server -y

Можно и без ключа -y, если ты любишь нажимать на кнопочки по чаще.

Хотелось бы, что бы выдало окно о присвоении пароля рут пользователю, мы бы тогда сделали его пустым, ведь все пытаются при взломе что то вводить, а у нас пароль пустой, никто и никогда не догадается.

Придется нам ввести:

#sudo mysql_secure_installation

Тут нас уже попросит придумать пароль, предложит удалить тестовые базы данных, установить супер плагин для генерации супер паролей, а так же захочет выгнать всех анонимусов. Что мы конечно же сделаем, потому что будущее за блокчейном, там нет места анонимусам.


Теперь самое интересное. После успешной установки всего этого добра нам нужно отредактировать заветный конфигурационный файл с основными параметрами нашего скьюэля.

Как правило он находится по адресу /etc/my.cnf

Но не в моем случае. В моем случае по этому пути в этом файле были прописаны инклуды, и порывшись в них я обнаружил что нужные нам параметры лежат в файле по адресу: /etc/mysql/mysql.conf.d/mysqld.cnf

Господи прости.

Интересуют нас всего два параметра:

bind-address = меняем с локалхоста на адрес своего же сервера, ну или адрес местного прокурора, в зависимости от жизненной ситуации.

server-id = 1 присваеваем любое число, главное что бы было уникальное и положительное.

Ну и можем еще расскоментить бинарные логи параметром log_bin, но кому это в наше время нужно, если в случае чего можно просто скейлится и пересоздаватся, правильно?

Проделываем эти правки на обеих серверах.

Перезагружаем mysql для прочтения новых параметров конфига командой:

#sudo service mysql restart

Теперь, на основном сервере (который будет мастером) заходим в мускул командой:

#sudo mysql -uroot

И создаем юзера под репликацию:

#mysql -u root
#CREATE USER 'repl'@'%' IDENTIFIED BY 'slavepassword';
#GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
#exit


Создаем тестовую базу, в ней таблицу и вводим туда значение после чего выводим его для проверки:

#sudo mysql -uroot

#create database metal;

#create table metal.fist (name varchar(20));

#insert into metal.fist values ('golden');

#select * from metal.fist;


Далее, делаем дамп нашей базы и отправляем его на наш слейв:

#sudo mysqldump -u root --all-databases --master-data > masterdump.sql
#sudo scp masterdump.sql 10.11.8.1:


Теперь на нашем слейве, логинимся в базу, указываем ей где мастер и под каким пользователем делать реплику:

#sudo mysql -u root
#CHANGE MASTER TO
#MASTER_HOST='10.11.8.2',
#MASTER_USER='repl',
#MASTER_PASSWORD='slavepassword';
#exit

Восстанавливаемся из пересланного нами же дампа:

#sudo mysql -uroot < masterdump.sql

Запускаем роль мускула как слейва и проверяем статус:

#sudo mysql -u root
#start slave;
#show slave status\G;

После этого можем на мастере добавить для проверки какое то новое значение в таблицу, после чего проверить появилось ли оно на слейве.

Domo arigatou gozaimasu!


Report Page