Дано:
Два сервера;
IP первого 1.1.1.1;
IP второго 2.2.2.2;
Ubuntu Server 14.04;
Начнем
****************ОБЕ НОДЫ****************
1. Ставим сервер
apt-get install mysql-server
2. указываем пароль рута
qwe123
****************ПЕРВАЯ НОДА****************
1. правим конфиг на первой ноде
mcedit /etc/mysql/my.cnf
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = example
bind-address = 1.1.1.1
2. Перезапускаем MySQL
/etc/init.d/mysql restart
3. Теперь необходимо создать пользователя, из под которого будет происходить репликация
# Создаем пользователя replicator с паролем password
mysql -u root -p
create user 'replicator'@'%' identified by 'password';
grant replication slave on *.* to 'replicator'@'%';
4. Проверим статус репликации:
show master status;
вывод:
+----------------------+----------+-------------------+------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+-------------------+------------------------+
| mysql-bin.000003 | 344 | example | |
+----------------------+----------+------------------+-------------------------+
****************ВТОРАЯ НОДА****************
1. На втором Мастере необходимо внести такие изменения в конфигурацию my.cnf
mcedit /etc/mysql/my.cnf
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = example
bind-address = 2.2.2.2
2. Перезапускаем MySQL:
/etc/init.d/mysql restart
3. Теперь необходимо создать пользователя, из под которого будет происходить репликация
# Создаем пользователя replicator с паролем password
mysql -u root -p
create user 'replicator'@'%' identified by 'password';
grant replication slave on *.* to 'replicator'@'%';
4. Проверим статус репликации:
show master status;
****************НА ПЕРВОЙ НОДЕ****************
1. Создаем базы
create database example;
2. Проверим статус репликации на ВТОРОЙ ноде:
show master status;
+----------------------+----------+-------------------+-----------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+-------------------+-----------------------------+
| mysql-bin.000001 | 433 | example | |
+---------------------+-----------+-------------------+-----------------------------+
3. Теперь нам необходимо запустить репликацию со второго. Для этого мы
используем информацию о позиции и названии лога. В шаге 2.
slave stop;
CHANGE MASTER TO MASTER_HOST = '2.2.2.2', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 433;
slave start;
****************НА ВТОРОЙ НОДЕ****************
1. Создаем базы
create database example;
2. Проверим статус репликации на ПЕРВОЙ ноде:
show master status;
+----------------------+----------+-------------------+------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+-------------------+------------------------+
| mysql-bin.000008 | 433 | example | |
+----------------------+----------+-------------------+------------------------+
2. Теперь нам необходимо запустить репликацию с первого. Для этого мы
используем информацию о позиции и названии лога. В шаге 2.
slave stop;
CHANGE MASTER TO MASTER_HOST = '1.1.1.1', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000008', MASTER_LOG_POS = 433;
slave start;
****************ЛЮБАЯ НОДА****************
1. Проверяем репликация
SHOW SLAVE STATUS\G
2. Создадим таблицу (на одной из нод)
use example;
CREATE TABLE get (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
3. Смотрим чего получилось
SHOW TABLES;
+-----------------------+
| Tables_in_example |
+-----------------------+
| pet |
+-----------------------+
4. Проверяем структуру таблицы
DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5. Проверяем на ДРУГОЙ ноде
SHOW TABLES;
DESCRIBE pet;
6. Создаем таблицу на другой ноде
CREATE TABLE get (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
7. Смотрим чего получилось
SHOW TABLES;
+------------------------+
| Tables_in_example |
+-----------------------+
| get |
| pet |
+-----------------------+
8. Проверяем на другой ноде
SHOW TABLES;
+------------------------+
| Tables_in_example |
+-----------------------+
| get |
| pet |
+----------------------+
DESCRIBE get;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
Реплика работает в обе стороны. УРА!!! Можно даже одну ноду выключить, создать кучу таблиц, после включения все переедет как надо.
Два сервера;
IP первого 1.1.1.1;
IP второго 2.2.2.2;
Ubuntu Server 14.04;
Начнем
****************ОБЕ НОДЫ****************
1. Ставим сервер
apt-get install mysql-server
2. указываем пароль рута
qwe123
****************ПЕРВАЯ НОДА****************
1. правим конфиг на первой ноде
mcedit /etc/mysql/my.cnf
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = example
bind-address = 1.1.1.1
2. Перезапускаем MySQL
/etc/init.d/mysql restart
3. Теперь необходимо создать пользователя, из под которого будет происходить репликация
# Создаем пользователя replicator с паролем password
mysql -u root -p
create user 'replicator'@'%' identified by 'password';
grant replication slave on *.* to 'replicator'@'%';
4. Проверим статус репликации:
show master status;
вывод:
+----------------------+----------+-------------------+------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+-------------------+------------------------+
| mysql-bin.000003 | 344 | example | |
+----------------------+----------+------------------+-------------------------+
****************ВТОРАЯ НОДА****************
1. На втором Мастере необходимо внести такие изменения в конфигурацию my.cnf
mcedit /etc/mysql/my.cnf
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = example
bind-address = 2.2.2.2
2. Перезапускаем MySQL:
/etc/init.d/mysql restart
3. Теперь необходимо создать пользователя, из под которого будет происходить репликация
# Создаем пользователя replicator с паролем password
mysql -u root -p
create user 'replicator'@'%' identified by 'password';
grant replication slave on *.* to 'replicator'@'%';
4. Проверим статус репликации:
show master status;
****************НА ПЕРВОЙ НОДЕ****************
1. Создаем базы
create database example;
2. Проверим статус репликации на ВТОРОЙ ноде:
show master status;
+----------------------+----------+-------------------+-----------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+-------------------+-----------------------------+
| mysql-bin.000001 | 433 | example | |
+---------------------+-----------+-------------------+-----------------------------+
3. Теперь нам необходимо запустить репликацию со второго. Для этого мы
используем информацию о позиции и названии лога. В шаге 2.
slave stop;
CHANGE MASTER TO MASTER_HOST = '2.2.2.2', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 433;
slave start;
****************НА ВТОРОЙ НОДЕ****************
1. Создаем базы
create database example;
2. Проверим статус репликации на ПЕРВОЙ ноде:
show master status;
+----------------------+----------+-------------------+------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+-------------------+------------------------+
| mysql-bin.000008 | 433 | example | |
+----------------------+----------+-------------------+------------------------+
2. Теперь нам необходимо запустить репликацию с первого. Для этого мы
используем информацию о позиции и названии лога. В шаге 2.
slave stop;
CHANGE MASTER TO MASTER_HOST = '1.1.1.1', MASTER_USER = 'replicator', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000008', MASTER_LOG_POS = 433;
slave start;
****************ЛЮБАЯ НОДА****************
1. Проверяем репликация
SHOW SLAVE STATUS\G
2. Создадим таблицу (на одной из нод)
use example;
CREATE TABLE get (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
3. Смотрим чего получилось
SHOW TABLES;
+-----------------------+
| Tables_in_example |
+-----------------------+
| pet |
+-----------------------+
4. Проверяем структуру таблицы
DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
5. Проверяем на ДРУГОЙ ноде
SHOW TABLES;
DESCRIBE pet;
6. Создаем таблицу на другой ноде
CREATE TABLE get (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
7. Смотрим чего получилось
SHOW TABLES;
+------------------------+
| Tables_in_example |
+-----------------------+
| get |
| pet |
+-----------------------+
8. Проверяем на другой ноде
SHOW TABLES;
+------------------------+
| Tables_in_example |
+-----------------------+
| get |
| pet |
+----------------------+
DESCRIBE get;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
Реплика работает в обе стороны. УРА!!! Можно даже одну ноду выключить, создать кучу таблиц, после включения все переедет как надо.
Комментариев нет:
Отправить комментарий