При разработке мне необходимо синхронизировать базы данных MySQL. Обе системы имеют одинаковую установку: обе имеют FreeBSD 5.4 и PHP 4.4.0. Версия MySQL — 4.1.15. .
1. Установите и настройте
два сервера. Установите MySQL отдельно и установите их в каталог /usr/local/MySQL (этапы установки опущены, см. соответствующие документы. IP-адреса двух серверов: 192.168.0.1 и 192.168). .0.2 соответственно. Мы используем 192.168.0.1 в качестве основной базы данных и 192.168.0.2 в качестве подчиненного сервера. Мы используем одностороннюю синхронизацию, то есть данные мастера являются данными мастера, а затем подчиненный сервер активно переходит к мастеру. синхронизируйте данные обратно.
Конфигурации двух серверов одинаковы. Давайте скопируем ключевые файлы конфигурации. Файлы конфигурации по умолчанию находятся в каталоге /usr/local/MySQL/share/MySQL, включая my-large.cnf, my-medium.cnf. my -small.cnf и другие авторы, мы просто тестируем, просто используйте my-medium.cnf. После установки MySQL файл конфигурации по умолчанию указывается в каталоге хранения базы данных. Мы используем 4.1.X, поэтому файл конфигурации должен находиться в каталоге /usr/local/MySQL/var, поэтому скопируйте файл конфигурации туда:
cp /usr/local/MySQL/share/MySQL/my-medium.cnf /usr/local/MySQL/var/my.cnf
Два сервера выполняют одну и ту же операцию копирования файла конфигурации.
2. Настраиваем главный сервер.
Нам нужно настроить 192.168.0.1 в качестве основного сервера MySQL (master). Затем нам нужно решить, какую базу данных нам нужно синхронизировать и какого пользователя мы будем использовать для синхронизации. здесь пользователь root для синхронизации, а синхронизировать необходимо только базу данных abc.
Откройте файл конфигурации:
vi /usr/local/MySQL/var/my.cnf
Найдите эту информацию:
# требуется уникальный идентификатор между 1 и 2^32 - 1# по умолчанию равно 1, если главный хост не установлен# но не будет работать как главный, если опущенserver-id = 1 //1 — главный, 2 — резервный
Добавьте две строки:
sql-bin-update-same //Форма синхронизации binlog-do-db = abc //База данных для синхронизации
Перезапустите сервер MySQL по адресу 192.168.0.1:
/usr/local/MySQL/bin/MySQLadmin завершение работы /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
3. Настройте подчиненный сервер.
Наш подчиненный сервер в основном берет на себя инициативу по синхронизации данных с главным сервером. Мы редактируем файл конфигурации:
vi /usr/local/MySQL/var/my.cnf
Найдите аналогичную информацию ниже:
# требуется уникальный идентификатор от 1 до 2^32 - 1# по умолчанию равно 1, если мастер-хост не установлен # но не будет работать как главный, если опущен id сервера = 1
Измените указанный выше идентификатор сервера на 2 и добавьте некоторую информацию:
server-id = 2 //Этот MySQL является подчиненным сервером master-host = 192.168.0.1 //IP-адрес главного сервера master-user = root //Пользователь, который подключается к главному серверу master-password = '' / /Пароль для подключения к мастер-серверу master -port = 3306 //Порт подключения master-connect-retry = 10 //Количество повторных попыток replication-do-db = abc //База данных для синхронизации log-slave-updates // Форма синхронизации
Перезапустите сервер MySQL по адресу 192.168.0.2:
/usr/local/MySQL/bin/MySQLadmin завершение работы /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
4. Чтобы протестировать установку,
сначала проверьте журнал хоста ведомого устройства:
cat /usr/local/MySQL/var/xxxxx_err (xxx — имя хоста)
Проверьте, нормально ли соединение. Если вы видите такое сообщение, значит, все прошло успешно.
051031 11:42:40 MySQLd запущен 051031 11:42:41 InnoDB: запущен; порядковый номер журнала 0 43634/usr/local/MySQL/libexec/MySQLd: готов к соединениям. Версия: '4.1.15-log' сокет: '/ tmp/MySQL.sock' порт: 3306 Исходное распределение051031 11:42:41 [Примечание] Инициализируется подчиненный поток SQL, запуск репликации в журнале "ПЕРВЫЙ" в позиции 0, релейный журнал "./new4-relay-bin.000001" позиция: 4051031 11:43:21 [Примечание] Подчиненный поток ввода-вывода: подключен к главному «[email protected]:3306» , репликация началась в журнале «ПЕРВЫЙ» в позиции 4
Посмотреть информацию о Мастере
/usr/local/MySQL/bin/MySQL -u корень
Посмотреть статус мастера:
MySQL> показать статус мастера;
Проверьте информацию о процессе MySQL в разделе Master:
MySQL> показать список процессов;
Просмотр информации о подчиненном устройстве:
/usr/local/MySQL/bin/MySQL -u корень
Просмотр статуса подчиненного устройства:
MySQL> показать статус подчиненного устройства;
Проверьте информацию о процессе MySQL под подчиненным устройством:
MySQL> показать список процессов;
Затем вы можете создать структуру таблицы в библиотеке abc ведущего устройства и вставить данные, а затем проверить, синхронизировал ли ведомое устройство данные, и проверить, успешна ли настройка.
Наконец, если вам интересно, вы можете изучить горячее резервное копирование двойным щелчком мыши или реализацию синхронизации одного ведущего и нескольких ведомых устройств.