首先,我们先拿两台服务器安装好相同版本相同设置的MYSQL数据库。我这里安装的是mariadb-10.0.13数据库。

第一步,环境设置:

    我这边设置的是两台内网服务器,主服务器IP:10.6.0.187;从服务器IP10.6.0.186

    系统:CentOS 7

    数据库版本:mariadb-10.0.13

 

第二步:配置mysql主服务器(10.6.0.187)

    mysql  -uroot  -p123456    #进入MySQL控制台
    create database zabbix default charset utf8;  

    #建立数据库zabbix
    insert into mysql.user(Host,User,Password) values('localhost','slave2',password('123456'));   

    #创建用户slave2

    #建立MySQL主从数据库同步用户slave2密码123456 

    flush privileges;   #刷新系统授权表

    #授权用户slave2只能从10.6.0.186这个IP访问主服务器10.6.0.187上面的数据库,并且只具有数据库备份的权限
    grant replication slave  on *.* to ' slave2'@'10.6.0.186'identified by '123456' with grant option; 

第三步:将主服务器中的数据库导出,并导入到从服务器的数据库中去

    1、导出数据库zabbix

    mysql dump-u root -p123456 zabbix> /root/zabbix.sql   #在MySQL主服务器进行操作,导出数据库zabbix到/root/zabbix.sql 

    备注:在导出之前可以先进入MySQL控制台执行下面命令

    flush tables with read lock;    #数据库只读锁定命令,防止导出数据库的时候有数据写入

    unlocktables;   #解除锁定

    2、导入数据库到MySQL从服务器

    mysql -uroot-p123456  #进入从服务器MySQL控制台

    create database zabbix default charset utf8;   #创建数据库

    mysqldump -u root -p123456 zabbix< /root/zabbix.sql

   mysql -uslave2 -h192.168.21.169 -p  #测试是否能从从服务器上登录到主服务器

 

第四步:修改主数据库的配置文件

vi/etc/my.cnf   #编辑配置文件

server-id=1   #设置服务器id,为1表示主服务器,给 slave 指定唯一的server_id. 所有服务器,不管是主服务器,还是从服务器,都要设置 server_id. server_id值可以是整数型的数字(1 ~ 2^31-1),在同一个复制组(replicating group)中的每台(/个)服务器的server_id都必须是唯一的.
log_bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

binlog-do-db=zabbix  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

binlog-ignore-db=mysql   #不同步mysql系统数据库

service mysqld restart  #重启MySQL

mysql -uroot -p   #进入mysql控制台

show master status;  查看主服务器,出现以下类似信息

wKioL1U6D5awMOaqAAFzU-ZJeKc466.jpg

注意:这里记住File的值:mysql-bin.000035和Position的值:1218606,后面会用到。

五、配置MySQL从服务器的my.cnf文件
vi/etc/my.cnf   #编辑配置文件
server-id=2   #配置文件中已经有一行server-id=1,修改其值为2,表示为从数据库

log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
replicate-do-db=zabbix   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

replicate-ignore-db=mysql   #不同步mysql系统数据库

:wq!    #保存退出

service mysqld restart   #重启MySQL

mysql  -u root -p  #
进入MySQL控制台

stop slave;   #停止slave同步进程

change master to master_host='10.6.0.187',master_user='slave2',master_password='123456',master_log_file=' mysql-bin.000035' ,master_log_pos=1218606;    #执行同步语句

start slave;    #开启slave同步进程

SHOW SLAVE STATUS\G   #查看slave同步信息,出现以下内容

wKiom1U6DkSy1ol2AAOdtr9P5Hc664.jpg

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running:Yes

以上这两个参数的值为Yes,即说明配置成功!

第六步:测试mysql主从是否能够同步

进入主mysql中的zabbix库中,创建一张新表

use zabbix;

create table test (`id` int(4), `name` char(40));

wKioL1U6D7WTKzSgAAF0bdn5yyw893.jpg

这是主mysql中创建的表;

在从mysql中查看是否同步过来了这张表

use zabbix;

show tables;

wKiom1U6Dmez6FJSAAE5U6T661o694.jpg

这里我们看到已经同步过来了,至此,mysql主从同步实验做完了。

    在此,感谢网上大神们的教程,让我成功的完成了mysql主从配置。互联网的精神就是共享,在此我将我配置mysql主从中得经验分享给大家,以供我们大家共同学习,共同成长。