自己的虚拟机环境;

master:192.168.202.131

slave ;192.168.202.132

一、 主服务器配置

1、编辑/etc/my.cnf文件在mysqld下添加以下字段

server-id=131 #主服务器标识,主要是唯一性,没什么限制

log-bin=mysql-bin #指定二进制日志文件的名称

binlog-do-db=mysql #需要同步的数据库,

2、保存并重启mysql服务

3、设置读锁

mysql> flush tables with read lock;

mysql> flush privileges;

4、查看当前二进制日志名和偏移量值,从库按这个点开始进行数据恢复,之前的数据需要人工同步

[root@localhost ~]# mysql -uroot -p123456

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000005 | 409 | mysql | | |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

5.刷新日志

mysql>flush logs; #因为刷新日志file的位置会+1,即File变成为:mysql-bin.000006

(很多问题出在这一步)

6、解除读锁

mysql> unlock tables;

7、在主服务器上为从服务器创建一个用于同步的用户

mysql>grant replication slave on *.* to u01@'192.168.202.%' identified by '123456';

此种方式做同步,这一步是必须要做的或则是已经授权过的,不然下面会 报错

二、从服务器配置

1、编辑/etc/my.cnf文件在mysqld下添加以下字段

server-id=132 #从服务器标识

log-bin=mysql-bin #与主服务器一致

replicate-do-db=mysql #同步的数据库

relay-log=relay_log #

2、保存并重启mysql服务

3、[root@localhost ~]# mysql -uroot -p123456

mysql>slave stop;#停止slave同步进程

#执行同步语句

mysql> change master to master_host='192.168.202.131',

-> -> master_user='root',

-> -> master_password='123456',

-> -> master_log_file='mysql-bin.000006',

#保持与主服务信息一致(因为在主服务器上已经刷新,所以file位置要加1)

-> -> master_log_pos=409; #保持主服务信息一致

mysql> start slave #开启slave同步进程

mysql> show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上这两个参数的值为Yes,即说明配置成功!

三、 验证测试

1、在主库中新增一张表,添加测试数据

2、查看从库中是否完成同步