mysql本机主从_MySQL主从复制以及在本地环境搭建

本文详细介绍了MySQL主从复制的配置过程,包括主服务器和从服务器的配置,如端口设置、日志文件、数据库同步选项等。通过创建复制用户、授权,并设置主从复制参数,最终实现数据的实时同步。在主服务器上操作后,从服务器能立即看到变化,验证了主从复制的成功。
摘要由CSDN通过智能技术生成

MySQL主从复制原理:

948685ac997828057e7be6dba55ee6c2.png

master(主服务器),slave(从服务器)

MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事binary log events,可以通过 show binlog events 进行查看)

MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log)

MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据

1.MySQL下载安装

2.本地搭建主从复制

首先需要在本地安装至少两个MySQL服务器,为了避免端口冲突,可以把mysql的服务器的端口设置不同,这里我设置一个为3306,另一个服务器的端口号为3307,端口号在mysql的配置文件my.ini中配置。

主服务器配置

[mysqld]

port=3306

basedir="D:/master/MySQL/"

datadir="D:/master/MySQL/data/"

character-set-server=utf8

server_id=1

log-bin=mysql-bin#要生成的二进制日记文件名称

binlog-do-db=test#同步的数据库

binlog-ignore-db=mysql#不参与同步的数据库 ,例如mysql

从服务器配置

[mysqld]

port=3307

basedir=D:\slave\mysql2

datadir=D:\slave\mysql2\data

server-id=2?

log-bin=mysql-bin#开启了二进制文件

binlog_do_db=follow#主从复制的数据库

binlog_ignore_db=mysql#不参与主从复制的数据库,例如mysql

接下来在主服务器登录mysql,创建用于主从复制的用户并授权

create user [email protected] identified by ‘password‘;

grant replication slave on . to [email protected];

在从服务器上用创建的用户登录主服务器,看能不能成功,成功继续下面的步骤

在主服务器上执行命令:

show master status;(此命令查看主服务器的bin-log日志文件名称和position点)

mysql> show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 | 107 | test | mysql |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

在从服务器上执行以下命令:

在从库设置它的master:

mysql> change master to

master_host=‘127.0.0.1‘,master_port=3306,master_user=‘xiao‘,master_password=‘password‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=107;

Query OK, 0 rows affected (0.19 sec)

这里的master_log_file和master_log_pos对应刚才show master status记下的参数。

在从库开启从数据库复制功能。

mysql>start slave;

Query OK, 0 rows affected (0.00 sec)

在从库可以通过show slave status\G来查看一些参数。

当Slave_IO_Running和Slave_SQL_Running线程都为yes是主从复制配置成功!

此时在主库创建表或插入数据,在从库就会很快也能看到了。

-- 主库

mysql> create table tianyc_02(b int);

Query OK, 0 rows affected (0.16 sec)

mysql> insert into tianyc_02 values(2013);

Query OK, 1 row affected (0.13 sec)

-- 从库

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| tianyc_01 |

| tianyc_02 |

+----------------+

2 rows in set (0.00 sec)

mysql> select * from tianyc_02;

+------+

| b |

+------+

| 2013 |

+------+

1 row in set (0.00 sec)

同理,可以搭建第二、第三个从节点。

备注:两个服务的serve_id必须不同,否则在开启复制功能时会提示错误

mysql> slave start;

ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO

我这里设置的主节点id为1,从节点id为2。也可以按照ip或端口进行设置,好用来区分。

原文:https://www.cnblogs.com/xq-0226/p/11483590.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值