mysql主从配置
Posted 蜗牛的信仰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从配置相关的知识,希望对你有一定的参考价值。
1、从《高性能mysql》书中讲解主从原理大致有三个步骤:
在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。
从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。
从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。
原理图为:
我的机器:
主:192.168.0.191
从:192.168.0.192
2、主库配置:
修改my.conf:vi /etc/my.cnf 添加配置
# 服务的唯一编号 server-id = 1 # 开启mysql binlog功能 log-bin = mysql-bin # binlog记录内容的方式,记录被操作的每一行 binlog_format = ROW # 减少记录日志的内容,只记录受影响的列 binlog_row_image = minimal # 指定需要复制的数据库名为my_db binlog-do-db = my_db
重启mysql服务
service mysqld restart
创建从库同步数据的账号,进入mysql终端
grant replication slave on *.* to \'my_user\'@\'192.168.0.192\' identified by \'Ly.123456\';
flush privileges;
查看主库状态:
show master status\\G;
主库配置完成。
3、从库配置
修改my.conf:vi /etc/my.cnf 添加配置
# 服务的唯一编号 server-id = 2 # 开启mysql binlog功能 log-bin = mysql-bin # binlog记录内容的方式,记录被操作的每一行 binlog_format = ROW # 减少记录日志的内容,只记录受影响的列 binlog_row_image = minimal # 指定需要复制的数据库名为my_db replicate-do-db = my_db
重启mysql服务
service mysqld restart
进入mysql终端
执行命令:change master to master_host=\'192.168.0.191\',master_user=\'my_user\',master_password=\'Ly.123456\',master_log_file=\'mysql-bin.000003\',master_log_pos=154;
start slave;
查看状态:show slave status \\G
如果两个都是yes就是ok。刚开始的时候,我的第一个显示是NO,如下:
因为是,我是在虚拟机上先在主库所在机器装了mysql,然后克隆一台机器出来,做从节点,就导致了UUID是一样的。
停掉两台mysql服务,删除auto.cnf
启动mysql服务,再看看是不是两个都是yes,一定要仔细看master和slave的状态里的文件是否一致。
这样就能进行数据同步了。
以上是关于mysql主从配置的主要内容,如果未能解决你的问题,请参考以下文章