Я пытаюсь включить двоичное ведение журнала, чтобы я мог настроить репликацию главный-подчиненный между двумя серверами. Я работаю с существующим сервером с большим количеством данных, и я пытаюсь сбросить данные с помощью следующей команды:
mysqldump -u root -p --all-databases --master-data > masterdump.sql
но я получаю сообщение об ошибке: mysqldump: Error: Binlogging on server not active
.
Я следил за всеми видами руководств о том, как включить двоичное ведение журнала, но ничего не помогло. Я убедился, что добавил в my.cnf следующие параметры:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1
Когда я перезапускаю MySQL, это занимает некоторое время (я предполагаю, что это из-за огромного размера базы данных), около 60 секунд, но в конечном итоге запускается. Однако, когда я проверяю /var/log/mysql/error.log
, Я обнаружил следующую ошибку (повторяющуюся сотни раз):
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
Итак, я пошел искать все процессы mysqld, запустив pstree
и я нашел следующее:
root@my_server:~# pstree
init---some stuff
|--
|--mysqld---10*[{mysqld}]
|--
|--sudo---mysqld---23*[{mysqld}]
Вот где я застрял. Я не знаю, нормально ли иметь mysqld
И sudo mysqld
оба работают. Сервер обслуживается ServerPilot, который [я думаю] установил для меня MySQL.
Указывает ли какое-либо из этих свидетельств на какую-либо причину, по которой двоичное ведение журнала не включается?
Похоже, что несколько процессов mysqld вызывали проблемы. Благодаря советам от этот вопрос Мне удалось убить дерево процессов под sudo mysqld
и двоичное ведение журнала началось сразу. После этого работа остальной части репликации ведущий-ведомый произошла довольно быстро, благодаря это потрясающее руководство.