Проблемы с репликацией Master/Master и Master / Slave на Raspberry Pi 3
Итак, в течение 2 недель я пытался установить реплика Master / Master (с веб-сервером apache2 и базой данных mariadb) на два Raspberry pi, используя разные методы, которые я нашел по всему Интернету (также французские учебники). Многие из этих методов были довольно похожи, но я все еще не могу заставить свою репликацию работать, и теперь я застрял, потому что я не понимаю, что я делаю неправильно. Когда я только начинал, мне удалось заставить репликацию Master / Slave работать примерно через неделю (хотя это было ведомое устройство, которое могло писать на ведущем устройстве), поэтому я решил настроить его наоборот, чтобы превратить его в ведущее устройство. Репликация / master, и с тех пор она "сломана" (не работает ни на M / M, ни на M/S). В каждом уроке, который я выполнял, шаги были примерно одинаковыми:
редактировать " sudo nano /etc/my.cnf "
добавить необходимую информацию ->
лог-бен
server_id=1
реплицировать-ду-дб = реплицировать
связывать-адрес =192.168.xx
(и другие, которые я нашел на различных веб-сайтах, которые я мог бы помочь сделать более точным и, возможно, работать)
затем: "systemctl перезапустить mariadb "
После этого войдите в mariadb с мастером 1 и настройте его:
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ '$master_username'@'%', ИДЕНТИФИЦИРОВАННОГО '$master_password';
ГРАНТ РЕПЛИКАЦИЯ РАБА НА . TO '$master_username'@'%';
ПРИВИЛЕГИИ ПРОМЫВКИ;
ПОКАЗАТЬ МАСТЕР СТАТУС;
И затем сделайте то же самое на другом raspi ( master 2) с его правильной информацией и добавлением:
РАБ СТОП;
ИЗМЕНИТЬ MASTER TO MASTER_HOST = '192.168.0.12', MASTER_USER = '$master_username', MASTER_PASSWORD = '$master_password', MASTER_LOG_FILE =mariadb-bin.xxxxxx;, MASTER_LOG_POS = xxxx;
РАБОЧИЙ СТАРТ;
ПОКАЗАТЬ МАСТЕР СТАТУС;
затем вернемся к Мастеру 1:
РАБ СТОП;
ИЗМЕНИТЬ MASTER TO MASTER_HOST = '192.168.0.15', MASTER_USER = '$master_username', MASTER_PASSWORD = '$master_password', MASTER_LOG_FILE =mariadb-bin.xxxxxxxx;, MASTER_LOG_POS = xxx;
РАБОЧИЙ СТАРТ;
Итак, к настоящему времени я бы сделал SHOW SLAVE STATUS \G для обоих, чтобы увидеть, работает ли он, и нет, и он говорит:
Slave_IO_Running: подключение
Slave_SQL_Running: Да
и это говорит, что это не может соединиться с хостом обоими способами, но когда я пингую их, они находят друг друга.
Если у кого-то есть представление о том, что может происходить или что я делаю неправильно, это было бы весьма полезно! Хороший день для вас
1 ответ
Одной из причин таких проблем может быть то, что брандмауэр блокирует доступ к стандартному порту MariaDB 3306. Если у вас есть nc
, netcat
или же telnet
Установив программы, вы можете проверить, открыт ли сетевой порт, который прослушивает MariaDB.
nc 192.168.0.12 3306
или с telnet
telnet 192.168.0.12 3306
Если какой-либо из этих искаженных символов печати, как показано ниже, вы знаете, порт открыт.
r5.5.5-10.2.11-MariaDB-10.2.11+maria~jessie-log'le6|2}Cv���IIs'eGt5IP6]mysql_native_password
Вместо этого, если вы получаете сообщение об ошибке и в соединении отказано, вы знаете, что проблема с брандмауэром.