第一步:先将两台CentOS7虚拟机安装上MariaDB
yum -y install mariadb-server
第二步:master节点配置
启用二进制日志
设置一个在当前集群中惟一的server-id(主/从服务器的ID不能重复);
二进制日志,在Mariadb安装完成之后默认就是启动的,这里只是将mysql-bin改为了master-bin当然不改也是可以的,另外server-id的选项也是默认的,这里并没有修改。
vim /etc/my.cnf
需要注意的是/var/log/没有mysql目录,需要手动新建并修改属主。
cd /var/log
mkdir mysql
chown -R mysql:mysql mysql
第三步:创建一个有复制权限(REPLICATION SLAVE, REPLICATION CLIENT)账号
先启动mariadb
systemctl enable mariadb.service
systemctl start mariadb.service
mysqladmin -u root password Pa9865321
mysql -u root -p
grant replication client,replication slave on *.* to 'repluser'@'****10.0.0.1****%' identified by'Pa9865321';
(注意:粗体是slave的地址,%代表任意数字)
flush privileges;
第四步:在master节点启用参数
vim /etc/my.cnf
同步二进制日志,事务提交则马上将内存中的二进制日志同步到磁盘
如果用到的为InnoDB存储引擎
重启服务并配置防火墙
systemctl restart mariadb.service
firewall-cmd --add-port=3306/tcp
firewall-cmd --add-port=3306/tcp --permanent
第五步:slave节点配置
启用中继日志;
设置一个在当前集群中惟一的server-id;
vim /etc/my.cnf
systemctl enable mariadb.service
systemctl start mariadb.service
firewall-cmd --add-port=3306/tcp
firewall-cmd --add-port=3306/tcp --permanent
mysqladmin -u root password Pa9865321
mysql -u root -p
第六步:指定master,并读取数据
CHANGE MASTER TO MASTER_HOST='**10.0.0.12**',MASTER_USER='repluser',MASTER_PASSWORD='Pa9865321';
第七步:启动Mariadb slave的 IO和SQL线程
start slave;
查看从服务器复制状态,IO和SQL线程还是处于关闭状态,需要手动启动才会
开始复制
“Slave_SQL_Running: No” 解决方案
首先在Slave主机上停掉Slave服务
stop slave;
show master status;
change master to master_host='10.0.0.12',master_user='repluser',master_password='Pa9865321',master_port=3306,master_log_file='master-bin.000005',master_log_pos=245;
start slave;
第八步:验证
Master服务创建数据库并查看数据库
create database cjb;
show databases;
show databases;
至此,试验成功。