第一步 安装MySQL
(1)选择三台虚拟机,且保证三台机器互联互通,作为部署机器.本文选择的三台虚拟机是CentOS7.6
给这三台机器分配主从,这三台机器对应的IP地址为:
192.168.149.219 master
192.168.149.220 slave
192.168.149.221 slave
(2)查看当前系统中已经安装的mysql
rpm -qa |grep mariadb |
(3)正常情况下,上条应该显示为空.切换为root用户.执行命令,安装
yum install mariadb-server mariadb |
(4)启动
systemctl start mariadb |
(5)登录
mysql -u root |
若显示如下图所示,则表明安装成功.
另外两台也执行同样的操作.执行之后,此时的状态是,三台机器上纯净的安装了MySQL,没有做任何配置.
第二步 修改三个节点的配置.
在主节点/etc/my.cnf文件中增加两行.
server-id=1 log-bin=mysql-bin |
在第一个从节点/etc/my.cnf文件中增加两行.
server-id=2 log-bin=mysql-bin |
在第二个从节点/etc/my.cnf文件中增加两行.
server-id=3 log-bin=mysql-bin |
以master节点为例,最终的文件看起来如下图所示.
修改完配置之后重启一下mysql服务
systemctl restart mariadb |
第三步 master配置.
(1)登录master,进入mysql操作界面,为另外两台机器分配权限。
grant replication slave on *.* to 'replicate'@'192.168.149.221' identified by 'fanxiaoguang@0'; flush privileges;
grant replication slave on *.* to 'replicate'@'192.168.149.220' identified by 'fanxiaoguang@0'; flush privileges; |
其中 'replicate'是自定义的用户名,'192.168.149.221'和192.168.149.220'是slave节点的ip,'fanxiaoguang@0'是自定义的密码。
(2)开放连接,使另外两台可以连接
第一种方式,开放端口,执行
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT |
第二种方式,关闭本地防火墙(不建议)
service iptables stop |
为了验证是否成功开放,在另外两台测试一下。在另外两台分别在命令行钟输入
mysql -h192.168.149.219 -ureplicate -pfanxiaoguang@0 |
若登录成功则说明开发成功,两台机器可以互联。
第四步 slave配置.
(两台slave配置方法一样)
切换到 slave节点,以root用户登录mysql,
执行以下操作
mysql>stop slave; mysql>change master to master_host='192.168.149.219',master_user='replicate',master_password='fanxiaoguang@0'; mysql>start slave; |
执行命令,查看状态,
show slave status\G; |
如图所示,若其中这两个地方是yes,那么就说明已经配置成功
第五步 验证
所说的主备,当主节点数据库发生改变,那么从数据库要随之改变。
我们在master节点中,test数据库中创建表格并插入一条数据,可以看见slave节点也跟随这改变了。
use test; create table kyctest( name VARCHAR(20) ,tel VARCHAR(20) ); insert into kyctest(name,tel) values('kyc102','0238456'); |
为了更明显,插入操作之后,在从节点查看数据库。
select * from kyctest; |
在主节点再次插入。
insert into kyctest(name,tel) values('kyc','00000'); |
再从节点再次查看数据库。
select * from kyctest; |