一、mysql复制概述

        

Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突


master服务器    192.168.2.31

slave服务器       192.168.2.214


    1.修改主服务器master

        vim /etc/my.cnf

myaql 主从复制_第1张图片

    2.修改从服务器slave:

        vim /etc/my.cnf

myaql 主从复制_第2张图片

    3.重启两个mysql服务器

         /etc/init.d/mysqld restart    service mysqld restart

    4.在主服务器建立账户并授权slave:

        mysql -uroot -p*****

        GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.2.214' identified by 'password';

    5.登录主服务器的mysql,查看master的状态

        

wKiom1gQIviSYcEdAAASkqii5bU943.png-wh_50

        (完成slave服务器配置后再对主服务器配置)

    6.配置从服务器slave并启动从服务器

wKiom1gQI7Pxw5xIAAAaQZXQD9o274.png-wh_50

change master to master_host='192.168.100.115',master_user='rep1',master_password='password',master_log_file='mysql-bin.000002',master_log_pos=976447;



    7.检测从服务器状态 show slave status\G

myaql 主从复制_第3张图片

myaql 主从复制_第4张图片

        (Slave_IO_running及Slave_SQL_running必须保证yes的状态)否则都是不正确的状态

    8.测试

        主服务器建立数据库并且建立表,插入数据

        

myaql 主从复制_第5张图片



        从服务器slave的查询

        

myaql 主从复制_第6张图片

        9.mysql主从配置完成

    配置过程中遇到过Slave_IO_running 状态为Connecting经网上查资料获知有三个原因

    1.防火墙关掉

    2.selinux关掉 (setenforce 0或者vim /etc/selinux 改为disable)

    3.账户密码必须正确

    检查结果以上三项都正确,但是还是connecting的状态,各种检查各种重新配置,最终发现了一个小问题,解决后,主从复制马上可以了。是啥呢是啥呢  ………………………………两服务器时间不同步   很低级的错误