先决条件:主从服务器数据一致,主服务器刷新并生成一个新的 bin-log 日志
flush logs;
1、主服务器配置
主服务器 MySQL 授权从服务器用户
主服务器:192.168.01.1,从服务器:192.168.01.2; 主服务器授权用户:slave
GRANT replication slave ON *.* TO 'slave'@'192.168.01.2' IDENTIFIED BY '1234';
修改主服务器的配置文件my.cnf,开启binlog
log_bin = mysql-bin // 开启binlog 日志 binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed server-id=101 //为服务器设置唯一 id,一个文件只有一个server-id
2、从服务器的配置
修改my.cnf 配置文件
log_bin = mysql-bin // 开启binlog 日志 server_id=2 // 一个配置文件一个server-id master-host=192.168.01.1 // 主服务器IP master-user=slave// 主服务器用户名 master-password=1234 // 主服务器密码 master-port=3306 // 主服务器端口
或者命令行输入
MySQL 服务重启
service mysqld restart
查看是否配置成功:
show slave statusG;
Slave_IO_Running :从主服务器成功的bin-log日志同步并拿到数据
Slave_SQL_Running: 从服务器成功地执行SQL语句
上面两项均为yes,说明配置成功。
从服务器相关命令
start slave; //启动从服务器 stop slave; // 停止从服务器 show slave status; // 查看从服务器状态 show master logs; // 查看主服务器 bin-log 日志 change master to …… // 动态改变到主服务配置 show processlist; // 查看从服务器运行进程
主从数据不一致
第一种方法
stop slave; set global sql_slave_skip_counter=1; //跳过一步错误 start slave;
第二种方法:
stop slave; show master status;// 查看主服务器bin-log日志 change master to…… // 手动同步 ,指定日志文件和文件位置 master-log-file="mysql-bin.00001" master-log-pos=20
重启从服务器,查看 show slave statusG,Slave_IO_Running、Slave_SQL_Running 都为 YES,同步成功。
相关文章:Mysql主从复制原理及同步延迟问题