drupal

MySQL мастер-мастер репликация

Многие используют в MySQL функцию Master - Slave репликации для зеркалирования или бекапа данных. А что, если slave должен иметь возможность записать данные в БД, которые затем должны реплицироваться на Master? Настройка Master - Master репликации на самом деле не представляет из себя ничего сложного.

Дано:

  • Хост 1 (192.168.1.1) - главный сервер
  • Хост 2 (192.168.1.2) - второй сервер, зеркало первого, который должен реплицировать все с главного, а также передавать ему свои изменения

Необходимо настроить мастер-мастер репликацию между главным сервером и зеркалом. Поехали!

На главном сервере:

  • В файле конфигурации MySQL (my.cnf) отключаем параметр skip-networking и прописываем в bind-address внешний IP данного сервера

Ошибка в Drupal: function is deprecated

Если вы недавно обновили на своем сервере PHP до версии 5.3, то на вашем сайте, который работает под CMS Drupal не исключено появление сообщений вида:

Function ereg() is deprecated in includes/file.inc on line 895

К сожалению, на момент написания статьи, drupal официально еще не поддерживал php 5.3. Чтобы обойти эту ошибку, а точнее убрать вывод сообщений, нужно всего ничего - отредактировать файл includes/common.inc, находящийся в вашей директории с друпалом и заменить в нем строку:

if ($errno & (E_ALL ^ E_NOTICE)) {

на

if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {

У меня этот код был на строке 580.