关键词

MYSQL5.6.33数据库主从(Master/Slave)同步安装与配置详解(Master-Linux Sl

以下是详细讲解“MYSQL5.6.33数据库主从(Master/Slave)同步安装与配置详解(Master-Linux Slave-windows7)”的完整攻略。

概述

MySQL主从复制是一种基于二进制日志的复制方式,通过主库将产生的二进制日志传输到从库,在从库上重新执行来实现数据同步。这种方式可以减轻主库的负担并提高可用性。

环境要求

  • MySQL5.6.33主库(Linux)
  • MySQL5.6.33从库(Windows7)

步骤

主库配置

  1. 修改my.cnf配置文件,使二进制日志文件名称以及日志格式满足主从复制要求
# example.cnf
server-id=1
log-bin=master-bin
binlog-format=row
  1. 创建主库复制账户并授权
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
mysql> flush privileges;
  1. 查看主库状态,记录File和Position等信息
mysql> SHOW MASTER STATUS;

从库配置

  1. 修改my.ini配置文件,使其满足主从复制要求
# example.ini
server-id=2
relay-log=slave-relay-bin
log-bin=slave-bin
binlog-format=row
  1. 配置从库同步主库
mysql> CHANGE MASTER TO 
       MASTER_HOST='192.168.1.1', 
       MASTER_USER='slave', MASTER_PASSWORD='slave',
       MASTER_LOG_FILE='master-bin.000001',
       MASTER_LOG_POS=4;
  1. 启动从库复制
mysql> START SLAVE;
  1. 查看从库状态
mysql> SHOW SLAVE STATUS\G

示例说明

示例一:主库端创建用户名为test的表并添加一条记录,从库自动同步

  1. 在主库创建test表,并添加一条记录
CREATE DATABASE db_test;
USE db_test;
CREATE TABLE test (id INT, col1 VARCHAR(20));
INSERT INTO test VALUES (1, 'test_record_1');
  1. 查看主库状态信息,记录File和Position
SHOW MASTER STATUS;
  1. 在从库查看数据库信息
SHOW DATABASES;

可以发现db_test没有同步到从库

  1. 在从库启动复制
START SLAVE;
  1. 在从库查看状态信息,确保复制正常
SHOW SLAVE STATUS\G
  1. 在主库添加一条记录
INSERT INTO test VALUES (2, 'test_record_2');
  1. 在从库查看测试表内容
USE db_test;
SELECT * FROM test;

可以看到,test记录已经被同步到从库

示例二:删除子表,主库从库均能同步删除操作

  1. 为了测试方便,我们在主库中创建一个有子表的表,然后在从库中查看子表是否已经被同步
CREATE TABLE test2 (id INT, col1 VARCHAR(20));
CREATE TABLE test2_sub (id INT, col1 VARCHAR(20));
INSERT INTO test2 VALUES (1, 'test_record_1');
SELECT * FROM test2_sub;
  1. 在从库查看子表,确保已经同步
USE db_test;
SHOW TABLES;
  1. 在主库删除子表
DROP TABLE test2_sub;
  1. 在从库查看子表,发现同步已经生效
USE db_test;
SHOW TABLES;

可以看到test2_sub表已经不再存在。

通过以上示例可以看到,主从复制可以有效的实现数据的同步,大大提高了系统的可用性和稳定性。

本文链接:http://task.lmcjl.com/news/13999.html

展开阅读全文