最新消息: 新版网站上线了!!!

mysql 数据库一对一主从(master-slave)复制

提要:网上查了资料说主从数据库要版本一致,我这里由于之前的安装原因数据库版本并不一致,而且主服务器(master)安装在windows,从服务器(slave)安装在Linux

数据库版本:

主:10.1.9-MariaDB-log

从: 5.6.29-MariaDB-log


主从复制的问题以及解决办法:

mysql主从复制存在的问题:

  • 1.主库宕机后,数据可能丢失

  • 2.从库只有一个sql Thread,主库写压力大,复制很可能延时

解决方法:

  • 1.半同步复制---解决数据丢失的问题

  • 2.并行复制----解决从库复制延迟的问题


一、原理:

依托mysql数据库二进制日志。主数据库(master)把自身的增删改查等等动作全部记录到二进制日志中,从数据库(slave)按照master的二进制日志自行进行操作。这样就实现了主从复制。


二、配置:

主数据库配置(windows是my.ini)

修改log-bin如下:

log-bin=mysql-bin   //将mysql二进制日志取名为mysql-bin


修改server-id如下:

server-id= 1    //默认值为1,一般设置的是ip地址末尾的值

blob.png


从数据库配置(Linux是my.cnf)

要配置的项和主数据库一样

修改log-bin如下:

log-bin=mysql-bin   //将mysql二进制日志取名为mysql-bin


修改server-id如下:

server-id= 79   //从服务器ip地址末值为79

blob.png

配置完对主从数据库重启


三、主数据库创建一个账号,并且赋予复制权限,后期从数据库会通过这个账号复制操作

1、在mysql操作界面下,输入下面一行命令:

GRANT replication slave ON *.* TO 'slave</a>'@'%' IDENTIFIED BY '111111'; 

blob.png


2、查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变)

执行语句:SHOW MASTER STATUS;

blob.png


3、设置从数据库

关闭slave(如果你以前配置过主从的话,一定要先关闭)

命令:stop slave;

开始配置:

输入下面代码即可:

MySQL [(none)]> CHANGE MASTER TO
    -> MASTER_HOST="192.168.31.153",
    -> MASTER_USER="slave",
    -> MASTER_PASSWORD="liuwenbin",
    -> MASTER_LOG_FILE="mysql-bin.000001",
    -> MASTER_LOG_POS=5779;


参数解释:MASTER_HOST  :  设置要连接的主服务器的ip地址

       MASTER_USER  :  设置要连接的主服务器的用户名

       MASTER_PASSWORD  :  设置要连接的主服务器的密码

       MASTER_LOG_FILE  :  设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息

       MASTER_LOG_POS  :  设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)

从服务器配置完成,开启同步

命令: start slave;


4、查看从服务器同步是否成功

命令: show slave status;

blob.png

上面两项均为yes,说明配置成功,否则,请重复前面的步骤。

 ok,到这里MySQL的主从复制就配置完了,

blob.png

.....

转载请注明:谷谷点程序 » mysql 数据库一对一主从(master-slave)复制