读写分离 -> 数据一致性(主从复制原理)
why:写锁、读不能读;热备;降低磁盘I/O
日志:binlog(mysql server)、redolog(InnoDB 事务)、undolog(InnoDB 事务)
从库两个线程(自带)
IO thread :把二进制文件传递
sql thread:读取relay log解析sql逐一执行
mysql5.7之后使用MTS解决复制时间延迟
主从复制搭建:
主:
1、开启binlog日志,/etc/my.cnf设置二进制文件名称、日志格式、服务器id(不能重复)、同步的数据库名称
2、配置从服务器登录主服务器的账号授权 grant replication slave on *.* to 'root'@'%' identified by '123456';
flush privileges;
3、重启mysql服务 service mysql restart
4、mysql中查看master状态 show master status;
从:
1、开启binlog日志
2、重启mysql服务 service mysql restart
3、连接主服务器:
change master to master_host='',master_user='root',master_password='',master_port=3306,master_log_file='xxx',master_og_pos=123;
4、启动slave start slave;
5、查看状态show slave status\G
(在mysql内,不用分号) 两个线程必须Yes(Slave_IO_Running、Slave_SQL_Running)
读写分离:mycat、amoeba变形虫