Mysql主从库配置(windows系统),实现主从表数据同步。

       为了缓解大量的并发访问,除了在网站实现分布式负载均衡。在数据库层面,单台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';

    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。配置从库连接主库需要上述两个值

Mysql主从库配置(windows系统),实现主从表数据同步。_第1张图片

   至此,主库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

   重启服务器,使配置生效。

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

mysql> 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,代码如下:

mysql> start slave;

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

  此刻。主从库都已经配置完成。那咱接下来,就验证一下可以数据实时同步。OK。闲话少续,开始搞。

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

mysql> 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;

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

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

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

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

mysql>show databases;

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

mysql>use demo1;
mysql>select * from `table1`;

结果如下图:恭喜你主从库配置完成。可以创建你的集群服务器了。

 

 

 

你可能感兴趣的:(mysql)