log_bin = /data/mysql/sql_log/mysql-bin
server_id= 100 ##建议用ip的最后一段
从服务器配置
log_bin = /data/mysql/sql_log/mysql-bin
server-id = 101
relay_log = /data/mysql/sql_log/relay-bin
read_only = on
super_read_only = on
skip_slave_sart = on
master_info_repository = TABLE
relay_log_info_repository = TABLE
create user 'repl'@`ip段` identified by 'password';
grant replication slave on *.* to 'repl'@`ip段`;
建议主从数据库服务器采用相同的MySQL版本
建议使用全库备份的方式初始化slave数据
mysqldump --master-data=2 -uroot-p -A --single-transcation -R --triggers --routines --all-databases > all.sql
change master to
master_host = 'master_host_ip',
master_user = 'repl',
master_password = 'password',
master_log_file = 'mysql_log_file_name',
master_log_pos = xxx;
start slave;
show slave status \G;
#查看SLAVE_IO_Running 和SLAVE_SQL_Running的状态
gtid_mode = on
enforce_gtid-consistency
log-slave-updates = on
change master to
master_host = 'master_host_ip',
master_user = 'repl',
master_password = 'password',
master_auto_position = 1
gtid复制的限制
– 无法再使用create table .. select 简历表
– 无法在事务中使用create temporary table建立临时表
– 无法使用关联更新同时更新事务表和非事务表
就是一个未分配给真实主机的ip,也就是说对外提供服务器的主机除了有一个真实ip外还有一个虚ip
保证只有一个主提供服务 另一个提供只读的服务
master 数据库配置修改
auto_increment_increment = 2
auto_increment_offset = 1
1,3,5,7,9...
主备数据库配置修改
auto_increment_increment = 2
auto_increment_offset = 2
2,4,6,8,10...
keeplived 基于arrp网络协议
yum install keepalived y
vim /etc/keepalived/keeplived.conf
chmod a+x /etc/keepalived/check_mysql.sh
systemctl keepalived start