linux系统mysql主从配置

1.原理

linux系统mysql主从配置_第1张图片
mysql主从配置执行流程:
1)master会将变动记录到二进制日志里面;
2)master有一个I/O线程将二进制日志发送到slave;
3) slave有一个I/O线程把master发送的二进制写入到relay日志里面;
4)slave有一个SQL线程,按照relay日志处理slave的数据;

2.执行过程

1)开启master的二进制日志
2)开启slave的二进制日志
3)将slave指向master
4)开始复制

3. 操作过程

准备工作:
1.在VM环境下克隆一台虚拟机,两台虚拟机都安装mysql服务(保证安装mysql版本箱相同)
2.克隆后的

4.执行步骤

1.安装mysql解压版

  • 1.1设置了root用户的密码为123456

  • 1.2 把虚拟机克隆一份.

  • 1.3 主从的ip

    1. 主:192.168.204.247

    2. 从:192.168.204.248

2.修改主数据库的my.cnf文件

  • 2.1 执行命令

    #vim /etc/my.cnf

  • 2.2 修改内容

    1. log_bin 启用日志功能 ,将mysql二进制日志取名master_log

    2. server_id 为服务器设置一个独一无二的id便于区分
      linux系统mysql主从配置_第2张图片

  • 2.3 重启mysql

     service mysql restart
    

3.进入主数据库的客户端工具

	#mysql -u root -p123456

4.新建一个myslave用户并赋予权限; 在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件。

进入主服务器的mysql界面

  • 4.1 命令:

    1. 表示任意数据库的任意表
    2. myslave 用户名
    3. 192.168.204.248 从数据库的ip,哪个客户端可以连接mysql服务端.
    4. 123456是myslave的密码
      grant all privileges on *.* to 'myslave'@'192.168.204.248' identified by '123456' with grant option;
    

    在这里插入图片描述

  • 4.2 检查执行结果 linux系统mysql主从配置_第3张图片
    5.通过命令可以观察主数据库在主从关系中状态.

    • 5.1 日志文件:存在于mysql安装目录/data
    • 5.2 data文件夹xxxxx.index文件,存储日志文件在哪里.
    • 5.3 data文件夹auto.cnf编写当前mysql的uuid
      linux系统mysql主从配置_第4张图片

6.修改主数据库的防火墙,放行3306端口

  • 6.1 添加3306放行端口

    vim /etc/sysconfig/iptables
    

linux系统mysql主从配置_第5张图片

  • 6.2 重启防火墙:

    service iptables restart
    

7.操作从数据库的内容

  • 7.1 修改从数据库的my.cnf的server_id

    vim /etc/my.cnf
    
  • 7.2 设置server_id为3
    linux系统mysql主从配置_第6张图片
    8.修改从的uuid

    • 8.1 # vim /usr/local/mysql/data/auto.cnf

    • 8.2 随意把值修改以下

    • 8.3 重写mysql服务

      service mysql restart
      

9.进入从数据库的客户端工具

 mysql -u root -p123456

10.操作slave

  • 10.1 关闭slave

    stop slave
    
  • 10.2 在从中配置出master的信息

    change master to master_host='192.168.204.247',master_user='myslave',master_password='123456',master_log_file='master_log.000005',Master_Log_Pos=1797;
    
  • 10.3 开启slave

    start slave
    
  • 10.4 显示slave状态

    show slave status \G;
    

linux系统mysql主从配置_第7张图片
11.验证主从关系

  • 11.1 主从服务都重新启动.
  • 11.2 在主数据库中新建数据库,新建表,添加数据,观察从数据库的状态.

12.连接Navicat客户端(开放远程连接权限(开放所有IP以root账号连接))

grant all privileges on *.* to root@'%' identified by '123456' with grant option;

结果:在mysql中创建数据库,会自动更新mysql2中的数据库
linux系统mysql主从配置_第8张图片
13.主从同步只同步主数据库中的个别库或者表
方法:

  1. 在主数据库中my.cnf添加如下配置:

    binlog-do-db=需要复制的数据库
    binlog-ignore-db=不需要复制同步的数据库(忽略的数据库,多个库之间用“,”隔开)

修改完配置文件后需要重启mysql服务

  1. 在从数据库my.cnf添加如下配置:

    replicate-do-db=需要复制的数据库
    replicate-ignore-db=不需要复制同步的数据库(忽略的数据库)

可以同步某个库的某个表

你可能感兴趣的:(linux,mysql,mysql主从复制,linux)