提要:网上查了资料说主从数据库要版本一致,我这里由于之前的安装原因数据库版本并不一致,而且主服务器(master)安装在windows,从服务器(slave)安装在Linux
数据库版本:
主:10.1.9-MariaDB-log
从: 5.6.29-MariaDB-log
主从复制的问题以及解决办法:
mysql主从复制存在的问题:1.主库宕机后,数据可能丢失
2.从库只有一个sql Thread,主库写压力大,复制很可能延时
解决方法:1.半同步复制---解决数据丢失的问题
2.并行复制----解决从库复制延迟的问题
一、原理:
依托mysql数据库二进制日志。主数据库(master的二进制日志自行进行操作。这样就实现了主从复制。
二、配置:
主数据库配置(windows是my.ini)
修改log-bin如下:
log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin
修改server-id如下:
server-id= 1 //默认值为1,一般设置的是ip地址末尾的值
从数据库配置(Linux是my.cnf)
要配置的项和主数据库一样
修改log-bin如下:
log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin
修改server-id如下:
server-id= 79 //从服务器ip地址末值为79
配置完对主从数据库重启
三、主数据库创建一个账号,并且赋予复制权限,后期从数据库会通过这个账号复制操作
1、在mysql操作界面下,输入下面一行命令:
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '111111';
2、查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变)
执行语句:SHOW MASTER STATUS;
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;
上面两项均为yes,说明配置成功,否则,请重复前面的步骤。
ok,到这里MySQL的主从复制就配置完了,
.....