MySQL主从配置
MySQL主从配置
MySQL主从又叫做Replication、AB复制,两台机器做主从配置之后,数据实时同步
主从配置大致步骤
①主将更改操作记录到binlog里
②从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里,中继日志
③从根据relaylog里面的sql语句按顺序执行
主配置(安装完mysql的虚拟机)
基础配置
# vi /etc/my.cnf
编辑配置文件
# /etc/init.d/mysqld restart
重启mysqld服务
# mysqldump -uroot mysql > /tmp/mysql.sql
备份mysql库(加入环境变量)
# mysql -uroot -e "create database kei"
创建一个库保存数据
# mysql -uroot kei < /tmp/mysql.sql
将mysql库恢复成新建的库,作为测试数据
数据库配置
# mysql -uroot
进入数据库(没有密码)
> grant replication slave on *.* to 'repl' @192.168.37.13 identified by '123456';
创建用作同步数据的用户并赋予权限
> flush tables with read lock;
将表锁住,保持表内数据不变
> show master status;
显示主机状态
从配置(安装完mysql的虚拟机)
基础配置
# vi /etc/my.cnf
编辑配置文件
# /etc/init.d/mysqld restart
重启mysqld服务
# scp /tmp/mysql.sql root@192.168.37.13:/tmp/
在主上将文件拷贝到从上,并在从上查看文件大小是否一致
# mysql -uroot -e "create database kei"
创建一个和主一样的库
# mysql -uroot kei < /tmp/mysql.sql
将文件内容导入库
数据库配置
# mysql -uroot
进入数据库(没有密码)
> change master to master_host='192.168.37.12',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=698861;
> unlock tables;
在主上执行解锁表
检验主从配置
从
> show slave status\G;
在从上执行命令,查看(将防火墙关闭)
主
# mysql -uroot kei
在主上进入数据库
> select count(*) from db;
> truncate table db;
从
# mysql -uroot kei
在从上进入数据库
> select count(*) from db;
主
> drop table db;