主从复制
* 原理
MySQL复制过程分成三步:
1 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
2 slave将master的binary log events拷贝到它的中继日志(relay log);
3 slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的
* 基本原则
1.每个slave只能有一个master
2.每个slave只有一个唯一的id
3.每个master可以有多个slave
* 一主一从常见配置
1.mysql版本一致且正在运行
2.主从配置在mysqlid下都是小写
3.主机修改my.ini配置文件
1)、主服务器唯一id server-id=1
2)、启用二进制日志
log-bin=自己本地路径/data/mysqlbin
3)、设置不要复制的数据库
binlog-ignore-db=mysql
4)、设置需要复制的数据库
binlog-do-db=数据库名
5)、设置logbin的格式
binlog_format=STATEMENT
4.mysql主从复制时,从机不继承主机数据
5.从机配置修改my.ini
server-id=2 relay-log=mysql-relay
6.重启主机和从机,并关闭防火墙
7.主机建立账户并授权从机
grant replication slave on *.* to '从机账户名'@'从机ip' identified by '密码'
show master status 查看主机状态
8.从机配置自己的主机
CHANGE MASTER TO MASTER_HOST='192.168.154.1',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具体数字',MASTER_LOG_POS=具体值;
9.从机启动/停止主从复制功能
start slave 启动从机主从复制
show slave status 如果slave_io_running:yes slave_sql_running:yes 则成功
stop slave 停止从机主从复制