探讨学习MySQL主从复制

作为一名PHP开发工程师,我想不管是在面试中还是在实际工作当中,我们不仅仅每天只是增删改查,if....else...那一套,我们应更深层的去学习PHP,学习MySQL,学习nginx ..........

    那么在此仅作为学习MySQL主从复制分享一点点心得吧(往往我们听起来很高大上的东西,动手做起来其实简单的很,难则难在基本功)

   首先我们应该在学习之前应掌握其原理所在,那么主从复制的原理,通俗来理解就是MySQL主服务器做什么事的同时从服务器也做该同样的事,两者保持一致,例如说:主服务说1加1等于2,那从服务就要同样说1加1等于2,但是与此同时呢,二者还需要建立一定的联系,才能进行握手通信,进行主从复制,也就是需要打开MySQL的二进制日志 binlog ,主服务器每次执行都会在binlog产生日志,从服务器相当于把主服务器的binlog读取过来,转化为自己可用的文件在自己的机器上执行一遍,(主从的执行间隔大约几十毫秒的样子,如果超过一秒基本是不能忍的),这样主从复制就完成了

  下面就配置主服务器binlog; 

   一,  

  找到自己的数据库配置文件(一般是/etc/my.cnf ,当然要结合自己搭建环境的实际情况),

  并开启二进制日志

  log-bin=mysql-bin ,

接下来就是,二台服务器要建立起来联系,互相通信,那么就要为从服务器设置一个登陆主服务器的用户密码:

进入MySQL命令行执行:    

mysql>grant replication slave on *.* to‘用户名’@’从服务器ip’  identified by ‘密码’;

刷新权限:     mysql>flush privileges;

二,

 查看主服务器二进制文件名与位置   

mysql>show master status;



在从服务器告知主服务器二进制文件名与位置,故在从服务器执行

 mysql>change master to

 >master_host=’xxx.xxx.xx.xx’,

>master_user=’用户名’,

>master_password=’密码’,

>master_log_file=’二进制binlog文件名’,

>master_log_pos=xxx;                    #binlog文件位置偏移处


至此,就完成了主从配置


三,接下来就是测试是否成功,

mysql>slave start;   #开启复制

mysql>show slave status\g   #查看主从复制是否配置成功


(若有异常,此处会抛出),在我实验过程中,抛出了权限拒绝(root用户),解决方法是因为MySQL用户表中每个用户的权限是不一样的,故此指定MySQL登录用户,问题解决,

当看到Slave_IO_Running: YES、Slave_SQL_Running: YES 时,严重祝贺你一切顺利完成

四,进行实际测试,

先登陆主MySQL

            mysql>show databases;

            

            再登陆从MySQL

            mysql>show databases;

            

            -----------------------------------------------------

            然后在主MySQL操作sql:

            mysql>create database aa;

            mysql>use aa;

            mysql>create table tab1(id int auto_increment,name varchar(10),primary key(id));

            mysql>show databases;

            mysql>show tables;

            

            在从服务器MySQL操作查看:

            mysql>show databases;

            mysql>show tables;

            

果然多了,一个aa库,并且在aa中有一张tab1表,与主MySQL保持了一致。





































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值