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的状态里的文件是否一致。

  这样就能进行数据同步了。

 来源:https://www.cnblogs.com/atcloud/p/10773855.html

以上是关于mysql主从配置的主要内容,如果未能解决你的问题,请参考以下文章

Mysql主从配置,实现读写分离

mysql主从配置,读写分离

MySQL主从复制与读写分离配置及实操

Mysql主从配置,实现读写分离

centos 5.4中mysql主从同步配置方法

Mysql主从配置和跳过事务