Назад | Перейти на главную страницу

Настройка репликации базы данных MySQL [без перезапуска mysql]

Я пытаюсь настроить репликацию MySQL db, это кажется довольно простым.

Я использовал этот учебник: http://www.howtoforge.com/mysql_database_replication

Теперь я запускаю довольно большую базу данных MySQL для очень большого веб-сайта, и в этом руководстве меня просят перезапустить MySQL, чтобы применить новые настройки в файле /etc/my.cnf.

Я стараюсь любой ценой избегать этого шага, так как знаю, что перезапуск MySQL на моем компьютере может занять несколько минут (из-за больших журналов / dbs), и я не хочу простоев.

Есть ли способ применить необходимые настройки БЕЗ полного перезапуска Mysql?

Множество настроек в my.cnf может применяться из MySQL с помощью SET GLOBAL. Например:

mysql> SET GLOBAL log_slow_queries = On;

Но некоторые из них доступны только для чтения из MySQL; log-bin один из них.

mysql> set global log_bin = foo;
ERROR 1238 (HY000): Variable 'log_bin' is a read only variable

Вам нужно добавить новую БД к существующей БД или объединить два существующих сервера БД? Если вам нужно добавить новый, убедитесь, что ваш сервер собирает бинлоги на рабочем сервере, командой «show master status». Вам нужно будет установить ID сервера на новом сервере (он не должен быть 1, потому что 1 - это ID сервера по умолчанию, и он используется на вашем «старом» сервере). Также проверьте, что ваш «старый» сервер слушает реальные интерфейсы. Если «старый» сервер использовал только 127.0.0.1, вам нужно будет перезапустить его, потому что вы не можете изменить параметры прослушивания и идентификатора на запущенном сервере без перезапуска. Все остальные параметры репликации можно изменить с помощью команды "set global", но я настоятельно рекомендую установить оба параметра в my.cnf, чтобы избежать проблем при перезапуске старого сервера.