搭建mariadb主从(入门级)

搭建mariadb互为主从(入门级)

mysql主从工作原理如下图:
主库将所有的写操作记录到binlog二进制日志文件中,然后生成一个log dump线程,将binlog日志传给从库的I/O线程。

重点:从库生成两个线程,一个I/O线程,一个SQL线程
1、I/O线程,它会主动去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志)
2、SQL线程,会读取relay log文件中的日志,并解析成具体操作,来保证主从的操作一致(复制主库的操作),达到最终数据一致的目的
搭建mariadb主从(入门级)

测试机器:
master: 192.168.11.182
slave: 192.168.11.183

一、安装mariadb服务(主从都安装)

1)yum install -y mariadb-server mariadb

2)查看是否安装成功,并且显示软件的文件: rpm -ql mariadb-server

3)主配置文件:/etc/my.cnf

二、简介主配置文件:
cat /etc/my.cnf
搭建mariadb主从(入门级)

三、配置文件:
由于上面主配置文件可知:mariadb会去读取/etc/my.cnf.d目录下的文件
,为了便于管理我们将配置文件写入到/etc/my.cnf.d目录下

1)、创建主从复制中的**主(master)**配置文件
vim vim /etc/my.cnf/master.cnf
[mysqld] #全局mysqld
server-id=182 #server-id 设置其唯一标识主机ID(通常用本机IP的最后一位)
log-bin=master-bin # log-bin 值的是二进制文件(最重要的配置)名字可以随便取
skip_name_resolv=1 #跳过域名解析功能
log_slave_updates=1 #日志从机更新(两主一从,保证从数据可以同时更新两台主数据)

2)、在主库上设置从节点允许访问主库的权限:
mysql -uroot -p -e “grant replication slave on . to [email protected]’%’ identified by ‘rep’;flush privileges;reset master;show master status;select user,host,password from mysql.user;”
搭建mariadb主从(入门级)
注解:
replication slave :REPLICATION SLAVE 常用于建立复制时所需要用到的用户权限,也就是slave server必须被master server授权具有该权限的用户,才能通过该用户复制
flush privileges : 刷新权限(全部数据库)
reset master: 刷新二进制文件位置数字
show master status: 查看主master产生的信息(二进制文件和位置数字)

4)、重启mariadb服务(主节点)
命令:systemctl restart mariadb

5)、创建主从复制中的**从(slave)**配置文件
vim /etc/my.cnf/slave.cnf
[mysqld] 全局mysqld
server-id=183 server-id 设置其唯一标识主机ID(通常用本机的最后一组数)
#log-bin=slave-bin log-bin 值的是二进制文件(最重要的配置)名字可以随便取,这里注释掉的原因是因为就让12这台机器为从服务器,不注释掉就会产生二进制文件(搭建主主复制就需要这行)
skip_name_resolv=1 跳过域名解析功能
log_slave_updates=1 日志从机更新(两主一从,保证从数据可以同时更新两台主数据)

6)、重启mariadb服务(从节点)
命令:systemctl restart mariadb

**

#记得修改完配置重启服务,使服务自己重新去加载服务所有本身的配置文件

**

四、测试(从节点)
1)测试从节点与主master机是否可以正常进行I/O线程通信
命令: mysql -urep -prep -h 192.168.11.183 -e ‘status;’
搭建mariadb主从(入门级)

2)、进入从服务器的数据库
步骤:
一:
命令: mysql 直接回车(初始数据库没有密码)
二:
命令: help change master to (获取写法,告诉从节点端它的主节点信息)
搭建mariadb主从(入门级)
CHANGE MASTER TO
MASTER_HOST=‘192.168.11.183’, #master 主机的IP地址
MASTER_USER=‘rep’, #master 主机赋予权限用户(建立复制)
MASTER_PASSWORD=‘rep’, #master 主机赋予权限用户密码
MASTER_PORT=3306, #master 主机的允许访问端口
MASTER_LOG_FILE=‘slave-bin.000001’, #master的二进制日志文件名
MASTER_LOG_POS=245, #master二进制日志文件位置
MASTER_CONNECT_RETRY=10; #主连接重试

3)、开启slave (slave有两个线程 I/O线程和SQL线程,IO_THREAD负责更新master.info文件,SQL_THREAD负责更新relay-log.info文件 注释:在5.6版本后,可以选择将master.info信息保存在mysql.slave_master_info表对象)

开启命令: start slave

4)、查看连接状态
命令:show slave status\G
搭建mariadb主从(入门级)
5)关闭与主库复制
命令: stop slave;
再次查看: show slave status;
搭建mariadb主从(入门级)

6)、测试
1、主节点创建一个数据库
2、从节点查看是否生成一个数据库(是——成功 否——不成功)

五、互为主从
只需要将从节点的/etc/my.cnf/slave.cnf配置文件 打开注释的#log-bin=slave-bin 即可。
步骤再走一次
1、修改配置文件(从节点)
2、授权
3、master节点测试 使用创建用户是否可以正常建立连接
4、master 节点填写从节点信息
5、开启线程服务
6、检查IO/SQL线程是否都为YES