首先,我们先拿两台服务器安装好相同版本相同设置的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; 查看主服务器,出现以下类似信息
注意:这里记住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同步信息,出现以下内容
注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running:Yes
以上这两个参数的值为Yes,即说明配置成功!
第六步:测试mysql主从是否能够同步
进入主mysql中的zabbix库中,创建一张新表
use zabbix;
create table test (`id` int(4), `name` char(40));
这是主mysql中创建的表;
在从mysql中查看是否同步过来了这张表
use zabbix;
show tables;
这里我们看到已经同步过来了,至此,mysql主从同步实验做完了。
在此,感谢网上大神们的教程,让我成功的完成了mysql主从配置。互联网的精神就是共享,在此我将我配置mysql主从中得经验分享给大家,以供我们大家共同学习,共同成长。