Репликация MySQL
Общая инфа
Как работает?
https://highload.today/kak-nastroit-mysql-master-slave-replikatsiyu-3f/
Через жопу
Репликация настраивается так: надо указать файл, который надо реплицировать и позицию, с которой надо реплицировать данные.
async sync
https://dev.mysql.com/doc/refman/8.0/en/binary-log-formats.html
bench
sysbench \
--db-driver=mysql \
--mysql-user=sbtest_user \
--mysql_password=password \
--mysql-db=sbtest \
--mysql-host=192.168.66.5 \
--mysql-port=3306 \
--tables=16 \
--table-size=10000 \
/usr/share/sysbench/oltp_read_write.lua prepare
Настраиваем Master-Slave
Настраиваем
На мастере
В конфиге указываем:
# выбираем ID сервера, произвольное число, лучше начинать с 1
server-id = 1
# путь к бинарному логу
log_bin = /var/log/mysql/mysql-bin.log
# название Вашей базы данных, которая будет реплицироваться
binlog_do_db = newdatabase
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
На слейв
После чего конфигурируем слейв:
# ID Слейва, удобно выбирать следующим числом после Мастера
server-id = 2
# Путь к relay логу
relay-log = /var/log/mysql/mysql-relay-bin.log
# Путь к bin логу на Мастере
log_bin = /var/log/mysql/mysql-bin.log
# База данных для репликации
binlog_do_db = newdatabase
И настраиваем соединение
CHANGE MASTER TO MASTER_HOST='10.10.0.1', MASTER_USER='slave_user', MASTER_PASSWORD='password',
MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 107;
START SLAVE;
Настраиваем Master-Master
Master-Master
https://highload.today/kak-nastroit-mysql-master-master-replikatsiyu-3f/
Инструкция
По аналогии с Master-Slave, только репликацию Slave настраиваем еще и на основном мастере.