Mysql数据库配置主从复制

打个小广告: 酷热券请点击

Mysql数据库配置主从复制
复制原理:
Mysql中有一种日志叫做bin日志(二进制日志)。这个日志会记录下所有修改了数据库的SQL语句(insert,update,delete,ALTER TABLE,grant等等)。
主从复制的原理其实就是把主服务器上的BIN日志复制到从服务器上执行一遍,这样从服务器上的数据就和主服务器上的数据相同了。

复制流程图:
这里写图片描述
复制过程:
1. 主节点必须启用二进制日志,记录任何修改数据库数据的事件。
2. 从节点开启一个线程(I/O Thread)把自己扮演成mysql的客户端,通过mysql协议,请求主节点的二进制日志文件中的事件
3. 主节点启动一个线程(dump Thread),检查自己二进制日志中的事件,跟对方请求的位置对比,如果不带请求位置参数,则主节点就会从第一个日志文件中的第一个事件一个一个发送给从节点。
4. 从节点接收到主节点发送过来的数据把它放置到中继日志(Relay log)文件中。并记录该次请求到主节点的具哪个二进制日志文件的哪个位置。
5. 从节点启动另外一个线程(sql Thread ),把replaylog中的事件读取出来,并在本地再执行一次。
复制中线程的作用:
从节点:
• I/O Thread:从Master请求二进制日志事件,并保存于中继日志中。
• Sql Thread:从中继日志中读取日志事件,在本地完成重放。
主节点:
• Dump Thread:为每个Slave的I/O Thread启动一个dump线程,用于向从节点发送二进制事件。
主从复制配置过程:
主节点:
1. 启用二进制日志。
2. 为当前节点设置一个全局唯一的server_id。
3. 创建有复制权限的用户账号 REPLIACTION SLAVE ,REPLIATION CLIENT。
从节点:
1. 启动中继日志。
2. 为当前节点设置一个全局唯一的server_id。
3. 使用有复制权限的用户账号连接至主节点,并启动复制线程。

mysql主从同步
我的要同步的两台mysql数据库版本都是mysql5.6,两台电脑都在同一个网段之中。
①修改主数据库my.ini配置:
Server-id = 1 这是数据库ID,此ID是唯一的,ID值不能重复,否则会同步出错;
log-bin = mysql-bin 二进制日志文件,此项为必填项,否则不能同步数据;如果不取名字的话,那么就会以 计算机的名字加编号来命名二进制文件;
binlog-do-db = testcreate 需要同步的数据库,如果还需要同步另外的数据库,那么继续逐条添加,如果 不写,那么默认同步所有的数据库;
binlog-ignore-db = mysql 不需要同步的数据库;
修改完成之后重启mysql服务。
② 添加主数据库用于同步的账号:
给主数据库授权一个可以进行复制的用户,执行如下命令:
grant replication slave on . to ‘slave’@’%’ identified by ‘123’;
③显示主数据库的同步信息:
这里写图片描述
可以看出已经产生了二进制的日志文件信息,mysql的同步就是通过这个二进制日志文件进行同步,主数据库把 对数据库的操作的指令都记录到该日志文件下,从数据库通过读取该文件,来对从数据库中的数据进行修改, 从而达到主从同步的效果。
④配置从数据库的my.ini
从数据库的话只需要配置server-id,binlog-do-db,binlog-ignore-db即可。
⑤设置从数据库链接到主数据库

在mysql下执行stop slave命令,停止slave服务;
mysql> change master to
-> master_host=’192.168.1.189’,
-> master_user=’slave’,
-> master_password=’123’,
-> master_log_file=’mysql-bin000014.000001’,
-> master_log_pos=107;
(放在一行上执行 结尾加上分号)

注意:这里的master_log_file,master_log_pos的值要和master的值一致。否则会无法同步。
执行 start slave命令,启动服务。

注意:在这里可能会无法链接到主数据库,需要看主数据库中my.ini中bind 127.0.0.1是否没有被注释,如果 没有,那么只能在本机登录,而不能使用远程登录方式。

⑥验证是否同步:
执行show slave status\G;
得到如下结果则说明同步成功。

猜你喜欢

转载自blog.csdn.net/lingdu257/article/details/80858845