【Windows系统】Mysql主从库配置,实现主从表数据同步

【Windows系统】Mysql主从库配置,实现主从表数据同步

  • 为了缓解大量的并发访问,除了在网站实现分布式负载均衡。在数据库层面,单台mysql服务器肯定无法满足大数据量的读写。于是我们需要搭建mysql集群。一个主(master)库,搭载多个从库(slave),把数据连接的分流到多个从库,来分担主库的压力。

  • 利用Mysql主从配置,实现读写分离,数据同步。主库负责写入数据,从库负责查询数据。

  • 前期准备(继续阅读下文,我认为你具备了windows系统安装mysql和一些基本的sql读写能力):

    1. 搭建一台master主库服务器(win7系统,Ip:192.168.1.150),在该服务器上安装mysql(我的版本是mysql-5.5.56)。

    2. 搭建一台slave从库服务器(win10系统,Ip:192.168.1.168),在该服务器上安装mysql(我的版本是mysql-5.5.56)。

  • 主从库数据同步原理:

    Mysql中有一种日志叫做bin日志(二进制日志)。这个日志会记录下所有修改数据库的sql语句。主从复制的原理其实就是把主服务器上的bin日志复制到从服务器上执行一次,这样从服务器上的数据就和主服务器的数据同步了。

    闲话少续,切入正题。开始配置主从库。

1.主库配置

  • 在win7系统,Ip:192.168.1.150的服务器上配置mysql为主库(master)。

    1)我的主库的用户名:root,密码为:12345,下面的代码是给主库设置从库可以远程连接主库,并且可以通过该账号读取二进制日志,实现数据同步。192.168.1.%是可以远程访问主库的从库IP地址。%是个通配符,表示192.168.1.0-192.168.1.255的服务器都可通过root用户登录主服务器。当然你也可以指定固定IP。但是为了以后从库的增加方便,我此刻用的通配符,你可以根据实际情况,进行配置。

    	mysql>GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY '12345';
    

    (PS:如果不想用命令行,可以使用Navicat等图形化工具进行分配权限)

    2)修改mysql的安装路径下的配置文件my.ini。(默认路径为:C:\Program Files\MySQL\MySQL Server 5.5)。

    在my.ini文件中增加如下几行代码:

    #给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
    server-id = 150
    log-bin = master-bin
    log-bin-index = master-bin.index
    

    3)查看主库日志名称,通过下面sql即可获取。

    mysql> show master status;
    

    查询结果如下图所示,master-bin.000004为我的主库bin日志文件,2580是log_position。配置从库连接主库需要上述两个值。
    在这里插入图片描述

    至此,主库master已经基本配置完成,重启mysql服务,配置完成。接下来咱继续配置从库。

2.从库配置

  • 在win10系统,Ip:192.168.1.168的服务器上配置mysql为从库(slave)。

    1)修改mysql的安装路径下的配置文件my.ini。(默认路径为:C:\Program Files\MySQL\MySQL Server 5.5)。

    在my.ini文件中增加如下几行代码:

    #给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
    server-id=168
    relay-log-index=slave-relay-bin.index
    relay-log=slave-relay-bin
    

    重启Mysql服务,使配置生效。(不行就重启服务器)

    2)在从库中执行如下sql代码,使从库连接主库,并可以实时同步数据。

    change master to master_host='192.168.1.150',
    	master_port=3306,
    	master_user='root',
    	master_password='12345',
    	master_log_file='master-bin.000004',
    	master_log_pos=2580;
    

3)启动slave,代码如下:

	start slave;

至此,从库也配置完毕。如果你想配置多台从库,配置和上诉配置一致。

此刻。主从库都已经配置完成。那咱接下来,就验证一下可以数据实时同步。

3.在主库中创建数据库,并且建一个表。具体代码如下:

create table if not exists `table1` (
    `t_id` int auto_increment,
     `t_username` varchar(64) not null,
     primary key(`t_id`)
)engine=innodb default charset=utf8;

在往该表插入一条数据,代码如下:

insert into `table1` (`t_username`) values('fubo'); 

4.在从库中验证数据是否同步。

1)查看从库中是否创建主库的数据库具体代码如下:

show databases;

2)切换到demo1数据库,查看是否同步主库的表和数据。代码如下:

use demo1;
select * from `table1`;

停止从库备份服务,并重置

stop slave;
reset slave all;

转载链接

作者:fubo1990
来源:CSDN
原文:https://blog.csdn.net/fubo1990/article/details/82788149
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/cai454692590/article/details/90694471
今日推荐