CentOS 7 MySQL 5.6 主从复制

主从复制的作用:
在这里插入图片描述

一、准备工作

  1. 虚拟机上安装一个CentOS 7服务器192.168.25.130 Master
  2. 在CentOS服务器上安装 MySQL 5.6,并创建一个用户 mysql1 密码 mysql1
  3. 在用虚拟机克隆一个 CentOS 7,并修改静态ip192.168.25.132 Slave

二、配置服务器

  1. Master服务器给从服务器账号mysql1授权

    在 Master 的数据库中建立一个复制账户,每个 Slave 使用该账户连接 Master 进行复制,需要 replication slavereplication client 权限,Master 的连接信息会存储在文本文件 master.info 文件中。

    ## 连接`root``mysql1`授权
    [root@centos ~]# mysql -uroot -p
    Enter password:
    mysql> grant replication slave,replication client on *.* to 'mysql1'@'192.168.25.132' identified by 'mysql1';
    mysql>FLUSH PRIVILEGES;
    mysql> quit;
    

    说明:创建了一个用户名为 mysql1的用户,密码为 mysql1,只允许在 192.168.25.132 这个 Slave 上登录。
    可将192.168.25.132设置为*,表示可以在局域网内的Slave登录

  2. 修改(master与slave)my.cnf文件

    	vi /etc/my.cnf  
    [mysqld] ##  新增以下内容
    server_id=130 ## 服务器id必须是唯一存在(master 130, slave 132)
    log-bin=mysql-bin   ## 开启日志文件
    

在这里插入图片描述

  1. 重启mysql服务

    [root@centos ~]# service mysqld restart
    
  2. slave连接master

    	CHANGE MASTER TO 
    		MASTER_HOST = '192.168.25.130', #另一台机器的地址
    		MASTER_PORT = 3306, #另一台机器的端口
    		MASTER_USER = 'mysql1',#另一台机器上第一步分配的用户名
    		MASTER_PASSWORD = 'mysql1', #另一台机器上第一步分配的密码
    		MASTER_LOG_FILE = 'mysql-bin.000001',#另一台机器上执行SHOW MASTER STATUS得到的文件名
    		MASTER_LOG_POS = 192; #另一台机器上执行SHOW MASTER STATUS得到的偏移量 
    
  3. 启动slave,并查看slave启动是否成功启动

	START SLAVE; # 启动slave
	SHOW SLAVE STATUS; # 查看slave状态

成功了的状态
在这里插入图片描述
在配置过程中,我遇到两个问题

  1. Slave_IO_Running为NO
    造成原因:由于mysql是通过另一台虚拟机克隆的。
    解决方案:修改[root@centos ~]# vi /var/lib/mysql/auto.cnf中的server-uuid(局域网内必须是唯一的)
    参考:mysql主从复制之异常解决— Slave_IO_Running: NO 之三大原因
  2. Slave_SQL_Running为NO
    造成原因:同步前主从数据库数据不一致。
    解决方案:将主数据库备份到从数据库。
    参考:mysql主从同步注意事项

三、主从服务器常用命令

  1. 主服务器相关命令

    mysql>show master status; # 查询master服务器状态
    mysql>show slave hosts; # 查询master的slave相关信息
    mysql>show binlog events;
    # mysql执行改动产生的二进制日志文件, 两个作用:
    #(1)数据回复 
    #(2) 主从数据库。用于slave端执行增删改,保持与master同步。 
    mysql>show binary logs;
    
  2. 从服务器相关命令

    mysql>slave start; # 启动slave
    mysql>slave stop; #关闭slave
    mysql>SLAVE STOP IO_THREAD;  # 此线程把master段的日志写到本地
    mysql>SLAVE start IO_THREAD;
    mysql>SLAVE STOP SQL_THREAD; # 此线程把写到本地的日志应用于数据库
    mysql>SLAVE start SQL_THREAD;
    mysql>reset slave;
    mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER;
    mysql>load data from master;
    mysql>show slave status; //SUPER,REPLICATION CLIENT
    mysql>CHANGE MASTER TO MASTER_HOST=127.0.0.1, MASTER_PORT=3306,MASTER_USER=user, MASTER_PASSWORD=pwd; //动态改变master信息
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值