mysql主从复制

  • 原理

mysql要做到主从复制,其实依靠的是二进制日志,即:假设主服务器叫A,从服务器叫B;主从复制就是

  B跟着A学,A做什么,B就做什么。那么B怎么同步A的动作呢?现在A有一个日志功能,把自己所做的增删改查的动作全都记录在日志中,B只需要拿到这份日志,照着日志上面的动作施加到自己身上就可以了。这样就实现了主从复制。

  • 配置

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

打开主服务器的mysql配置文件:my.cnf(linux)/my.ini(windows)

代码:# vi /etc/my.cnf

加入如下三行代码:

[mysqld]

log-bin=mysql-bin

server-id=226

binlog_checksum=none

参数解释:log-bin=mysql-bin  //将mysql二进制日志取名为mysql-bin

 binlog_checksum=none //不对二进制检查

  server-id=101 //为服务器设置一个独一无二的id便于区分,建议使用ip地址的最后一位充当server-id

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

2.重启mysql命令:# service mysqld restart

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

[mysqld]

log-bin=mysql-bin

server-id=222

binlog_checksum=none

唯一的区别是,server-id要改成从服务器的ip尾位,即server-id=105;其他两项是一样的,保存,并重启mySQL;
4. 在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件。

进入主服务器的mysql命令行:

# mysql -u root -p root

# CREATE USER 'slave'@'%' IDENTIFIED BY '123';

#grant REPLICATION SLAVE on *.* to 'slave'@'%';

# alter user 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123';

# flush privileges;

5.查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变).

   #show master status;

6. 设置从服务器

进入从服务器mysql命令: # mysql -u root –proot

关闭slave#stop slave;

设置访问master的配置:change master to master_host='114.115.134.108',master_user='slave',master_password='123', master_log_file='mysql-bin.000009',master_log_pos=12756;

参数解释: MASTER_HOST  :  设置要连接的主服务器的ip地址

  MASTER_USER  :  设置要连接的主服务器的用户名

  MASTER_PASSWORD  :  设置要连接的主服务器的密码

    MASTER_LOG_FILE  :  设置要连接的主服务器的bin日志的日志名称   

MASTER_LOG_POS  :  设置要连接的主服务器的bin日志的记录位置

7.先在从服务器配置完成,

启动从服务器slave :#start slave;

查看是否配置成功:#show slave status;

上面两项均为yes,说明配置成功,否则,请重复前面的步骤。即,重新启动主服务器,查看bin日志的名称和记录的位置;关闭从服务器slave,配置连接主服务器信息,启动slave,查看是否两项全都启动

注:遇到的问题

问题解决:UUID由于克隆导致两台服务器一致。

可以先将克隆机上的auto.cnf文件删除

find / -name auto.cnf 找到对应的路径删除

重启MySQL服务

  • 验证
  1. 主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:
#create database hi_db;

# use hi_db;

# create table hi_tb(id int(3),name char(10));

# insert into hi_tb values(001,'bobu') ;

# show databases;

 +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | hi_db                |
   | mysql                |
   | test                 |
   +--------------------+


2. 从服务器Mysql查询:

 +--------------------+
   | Database               |
   +--------------------+
   | information_schema |
   | hi_db                 |       //I'M here,大家看到了吧
   | mysql                 |
   | test          |

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值