Проблемы Репликации Mysql

У меня есть пи малины (IP 28) рабочий Mysql 5.5.57 (Raspbian) и Ubuntu с MySql 5.7.19 (IP 10)

Я устанавливаю репликацию для Ведущего устройства-> Ведомое устройство, это хорошо работало. Я затем пытался измениться на Ведущее устройство <-> Основная установка, однако никакие изменения DB не сталкивались вообще к машине Ubuntu.

Я пытаюсь запуститься снова (удаляющий бинарные журналы или изменяющий путь к папке), однако я получаю эту ошибку;

mysql> сбрасывают ведущее устройство; ОШИБКА 1186 (HY000): закрытый Бинарный журнал, не может СБРОСИТЬ ВЕДУЩЕЕ УСТРОЙСТВО

Это - отрывок от my.cnf на rpi;

server-id               = 1
#bind-address           = 192.168.0.10
#log_bin                        = /var/log/mysql/mysql-bin1.log 
expire_logs_days        = 10 
max_binlog_size         = 100M
binlog_do_db            = example 
log_slave_updates       = 1

Как Вы видите, log_bin комментируется. Если я некомментирую это, я не могу перезапустить услуги MySql успешно, я получаю следующую ошибку в системном журнале;

Sep 11 16:08:25 raspberrypi003 /etc/init.d/mysql[9209]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
Sep 11 16:08:25 raspberrypi003 /etc/init.d/mysql[9209]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Sep 11 16:08:25 raspberrypi003 /etc/init.d/mysql[9209]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Sep 11 16:08:25 raspberrypi003 /etc/init.d/mysql[9209]:
Sep 11 16:08:25 raspberrypi003 mysql[8373]: Starting MySQL database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
Sep 11 16:08:25 raspberrypi003 systemd[1]: mysql.service: control process exited, code=exited status=1
Sep 11 16:08:25 raspberrypi003 systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
Sep 11 16:08:25 raspberrypi003 systemd[1]: Unit mysql.service entered failed state.

После перекомментария строки, я могу возвратиться в MySql без ошибок в системном журнале;

pi@raspberrypi003:/var/log $ tail syslog |grep mysql
Sep 11 16:15:02 raspberrypi003 systemd[1]: Started LSB: Start and stop the mysql database server daemon.
Sep 11 16:15:02 raspberrypi003 mysql[9322]: not closed cleanly..
Sep 11 16:15:02 raspberrypi003 /etc/mysql/debian-start[9903]: Upgrading MySQL tables if necessary.
Sep 11 16:15:02 raspberrypi003 /etc/mysql/debian-start[9908]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Sep 11 16:15:02 raspberrypi003 /etc/mysql/debian-start[9908]: Looking for 'mysql' as: /usr/bin/mysql
Sep 11 16:15:02 raspberrypi003 /etc/mysql/debian-start[9908]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Sep 11 16:15:02 raspberrypi003 /etc/mysql/debian-start[9908]: This installation of MySQL is already upgraded to 5.5.57, use --force if you still need to run mysql_upgrade
Sep 11 16:15:02 raspberrypi003 /etc/mysql/debian-start[9919]: Checking for insecure root accounts.
Sep 11 16:15:03 raspberrypi003 /etc/mysql/debian-start[9924]: Triggering myisam-recover for all MyISAM tables

Единственная информация, которую я нашел онлайн, является высказыванием комментариев, что выполненный sudo сервис mysql запускается, Это - определенно не решение моей проблемы.

0
задан 11 September 2017 в 09:23

1 ответ

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

Следующие опции удалены в MySQL 5.5. Если вы попытаетесь запустить mysqld с любым из этих параметров в MySQL 5.5, сервер прерывает работу с неизвестной ошибкой переменной. Я испытал это среди множества других ошибок, когда пытался использовать разные конфигурации. В конце я начал все заново, и у меня все еще была та же проблема, пока я не узнал, что именно эти команды являются причиной проблемы.

–master-host
–master-user
–master-password
–master-port

Решение, прокомментируйте связанные с мастером переменные.

Выполните следующие действия, на главном устройстве:

mysql>GRANT REPLICATION SLAVE ON *.* TO ‘slave_user’@’%’ IDENTIFIED BY ‘‘; (Replace with a real password!)
mysql>FLUSH PRIVILEGES;
mysql>FLUSH TABLES WITH READ LOCK;
mysql>SHOW MASTER STATUS;
# get the DB dump.
mysql>UNLOCK TABLES;

На ведомом устройстве:

# import the DB dump
mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_HOST=’prod_master’, MASTER_USER=’slave_user’, MASTER_PASSWORD=’‘, MASTER_LOG_FILE=’mysql-bin.0xx‘, MASTER_LOG_POS=33421;
mysql>start slave;

Стоит отметить, что вы должны иметь возможность подключаться к каждому удаленному хосту, используя опцию mysql -h для проверки Учетные данные, после создания пользователей и предоставления привилегий, не забывайте команду сброса привилегий.

/var/log/mysql/error.log - ваш друг в этих сценариях проб и ошибок. Я предлагаю при необходимости переписывать журнал, перезапуская MySql.

обратите внимание, вам понадобятся эти журналы в файле конфигурации;

[mysqld]
log-error=/var/log/mysql/mysql.err
log-bin = /var/log/mysql/mysql-replication.log

, как только вы запустите slave; на каждом хосте вы увидите некоторые данные через:

SHOW MASTER STATUS;
SHOW BINARY LOGS;

, если вы создадите пример базы данных, а затем таблицу;

CREATE TABLE IF NOT EXISTS test (
  task_id INT(11) NOT NULL AUTO_INCREMENT,
  subject VARCHAR(45) DEFAULT NULL,
  start_date DATE DEFAULT NULL,
  end_date DATE DEFAULT NULL,
  description VARCHAR(200) DEFAULT NULL,
  PRIMARY KEY (task_id)
)

вы увидите, что они всплывают на другом хосте!

0
ответ дан 2 November 2019 в 07:03

Другие вопросы по тегам:

Похожие вопросы: