MySQL主从复制demo

作者: 寂寞的棍棍 | 来源:发表于2019-07-12 16:52 被阅读0次

    服务器:主服务器ip 172.31.242.249 、从服务器ip 172.31.242.250 两台服务器的MySQL版本保持一致

    原理:MySQL要做到主从复制,其实依靠的是二进制日志,即:假设主服务器叫A,从服务器叫B;主从复制就是 B跟着A学,A做什么,B就做什么。那么B怎么同步A的动作呢?现在A有一个日志功能,把自己所做的增删改查的动作全都记录在日志中,B只需要拿到这份日志,照着日志上面的动作施加到自己身上就可以了。

    1、首先修改mysql的配置文件,使其支持二进制日志功能

    打开主服务器的mysql配置文件:my.conf

    vi /etc/my.cnf  
    

    加入如下三行代码:

    #将mysql二进制日志取名为mysql-bin
    log-bin=/var/lib/mysql/bin-log/mysql-bin    
    #二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed
    binlog_format=mixed
    #为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id
    server-id=249
    

    配置完成 :wq 保存,重启MySQL

     systemctl restart mysqld.serivce
    

    同样的,进入从服务器,配置从服务器的my.cnf,重复步骤1即可。

    唯一的区别是,server-id要改成从服务器的ip尾位,即server-id=250;其他两项是一样的,保存,并重启MySQL;

    2、在主服务器上为从服务器分配一个账号

    进入主服务器的mysql界面,

     mysql -u root -proot     #我这里mysql账号是root,密码是root
    

    在mysql操作界面下,输入下面一行命令:

    GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'root'; 
    

    3、查看主服务器BIN日志的信息

    进入主服务器的mysql界面,

     show master status    #记录下file、position这两个值
    

    进入从服务器mysql

     mysql -u root -proot
    

    关闭slave(如果你以前配置过主从的话,一定要先关闭)

    stop slave;
    

    4、开始配置主从同步

    从服务器MySQL命令行下输入下面代码即可:

    CHANGE MASTER TO
    MASTER_HOST="172.31.242.249",
    MASTER_USER="root",
    MASTER_PASSWORD="root",
    MASTER_LOG_FILE="mysql-bin00001",     #show master status 中的file值
    MASTER_LOG_POS=250;                   #show master status 中的position值
    

    备注:
    MASTER_HOST : 设置要连接的主服务器的ip地址
    MASTER_USER : 设置要连接的主服务器的用户名
    MASTER_PASSWORD : 设置要连接的主服务器的密码
    MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息
    MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息(这里注意,最后一项不需要加引号。)

    启动从服务器开始复制:

     start slave;
    

    5、查看是否配置成功

    show slave status \G    #\G可以让执行结果格式化,代替;号是个不错的选择
    
    命令执行结果

    Slave_IO_Running、Slave_SQL_Running均为Yes代表成功

    特别强调。

    MySQL的主从复制无法保证100%永远不出问题,主从一旦断开,程序无法及时发现将是巨大灾难,强烈建议各位程序员对从服务器加监听(死循环show slave status),一旦发现异常,直接将从切换至主,保证数据的一致性。

    相关文章

      网友评论

        本文标题:MySQL主从复制demo

        本文链接:https://www.haomeiwen.com/subject/qdlykctx.html