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

Это всегда о данных. Что использование любой системы без данных оно опирается на?

Настройка репликации базы данных является одним из многих шагов, которые должны быть приняты для того, чтобы сохранить данные, предотвращая любые потери и решений аварийного восстановления легче.

К счастью, это легко с MySQL. Итак, давайте предположим, что мы имеем два серверов под управлением MySQL, одна называется host1 и host2 другие.
Репликация может быть либо мастер-мастер или мастер-раб. С мастер-раб репликации, раб всегда повторяет то, что основной базе данных выполняется. В мастер-мастер репликации, обе базы данных синхронизируются друг с другом.

Для этого урока, ведущий-ведомый (здесь host1 и host2 соответственно) сценарий рассматривается.

Прежде всего, откройте файл конфигурации MySQL на host1 (обычно находится в / и т.д. / my.cnf на Linux, и C: \ Windows \ my.ini на окнах) и раскомментировать (удалить хэш) следующую строку:

# Пропустить сетей

Во-вторых, вам нужно указать файл, в котором мастер (host1) должны войти (запись) запросов его выполнения. Это позволит раба (host2), чтобы прочитать эти запросы и выполнять их. Таким образом, добавить строку, таких как:

лог-бен = / путь / к / MySQL-bin.log

где стоимость выше, путь к файлу, в котором MySQL должен делать лесозаготовки. Вы вполне могли бы создать отдельную директорию или использовать установки по умолчанию MySQL каталога (например, C: \ Program Files \ MySQL \ на окнах или в / VAR / Библиотека / MySQL на Linux)

Затем, вам нужно указать имя базы данных, о которых идет речь. Так что, если вы настраиваете репликации для одного из ваших баз данных MySQL называемых "work_data ', то это, Вам нужно добавить в конфиг MySQL:

Двоичный-до-DB = work_data

Наконец, необходимо указать сервер идентификатор, который говорит, что это главный сервер

Сервер-ID = 1

Сохранить конфигурационный файл и выйти.
Теперь нужно дать host2 разрешения для репликации данных. Таким образом, запрос MySQL должна быть выдана на хозяина.

Так что на host1, Войти в MySQL строки (MySQL-гооЬ-pyour_root_password) (или PHPMyAdmin, и т.д ..., что Вы используете), а также выступить со следующим заявлением:

грант репликации раба по *.* на 'имя пользователя'@'%' выявленных' пароль ';

Не забудьте заменить имя пользователя и пароль с учетными данными по вашему выбору. Держите одинарные кавычки, хотя.
Знак% означает, что раб может подключиться с любого хоста. Если вы хотите, чтобы быть более безопасной, заменить, что с host2 (раба имя хоста).

После всего сказанного не будет сделано, перезапустите MySQL службы (службы туздЫ перезапуск (Linux) или, NET STOP MySQL, чистая начать MySQL (на окнах)).

Если база данных была ранее, убедитесь, что вы сбросить ее и загрузить его на раба, прежде чем делать какой-либо из вышеперечисленного. Дамп данных проста и может быть сделано путем cd'ing в каталог бен MySQL и выдачи:

туздЫшпр-Q-гооЬ-pyour_root_password имяБД> database_dump.sql

(Замените пароль и имя базы данных с правильной Логин). Вся база данных теперь будет в файле с именем database_dump.sql

Для того чтобы импортировать его на host2, перейдите в каталог MySQL бен и введите команду:

MySQL-гооЬ-pyour_root_password имяБД </ путь / к / / файл / database_dump.sql

Файл конфигурации MySQL на host2 должны иметь следующие строки:

Сервер-ID = 2
Мастер-хост = host1
мастер-пользователя = имя пользователя
мастер-пароля = пароль
Мастер-порт = 3306

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

Тогда начните раб процесса на host2, выполнив в MySQL строки:

начать рабом;

Чтобы убедиться, что репликация работает, выдает следующий запрос SQL на host1:

Статус шоу раб \ G

(Slave_SQL_Running и Slave_IO_Running должны сообщать о "да")

Удачи

5 Комментариев

Роберт 17 сентября 2008 в 10:49

Великий, только то, что мне было нужно. Теперь ... Можно ли установить несколько устройств Мастер повторить всего за один ведомый сервер?. Я спрашиваю это, потому что им пытаются создать Active-Stanby топологией, в которой, если один из мастеров не удается это может быть временно заменить ведомый сервер. Спасибо

админ 17 сентября 2008 в 11:25

Дорогой Роберт,
Что о запуске нескольких сервисов MySQL на раба хозяин? Каждый будет запущен на другой порт и будет зависеть от различных мастер.

Роберт 23 сентября 2008 в 1:44 вечера

Thats Гений! , Хотя мне придется изменить то, как пользователи подключается к базе данных, чтобы сделать плавный переход в случае неудачи.

админ 23 сентября 2008 в 4:58 вечера

Вы можете настроить локальную службу DNS, а заставить пользователей использовать имя хоста (в обычных случаях, указывающих на мастер) для доступа к вашим услугам.
В случае неудачи, нужно просто изменить запись DNS этого хоста указывать на раб машине.
Пользователи не заметили бы измениться, если вы измените IP-хоста, что решает.

host2 1 апреля 2010 в 8:02 вечера

[...] Позволяет добавлять или удалять узлы из кластера без необходимости перенастройки clients.Tips и хитрости Настройка базы данных MySQL replicationSo предположим, у нас есть два серверов под управлением MySQL, одна называется host1 и host2 другие. ... Если вы [...]

Оставить комментарий

Ваш комментарий