Linux系统下搭建主、从数据库的集群配置

Linux系统下搭建主、从数据库的集群配置

一、主从数据库搭建的内部原理

在这里插入图片描述

从库生成两个线程,一个I/O线程,一个SQL线程;
I/O线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;
主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;
SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,最终数据一致;

二、主要步骤

1、开启所有服务器的二进制文件(修改配置文件my.cnf)
2、指定主服务器下的从服务器有哪些(SQL)
3、指定从服务器所属的主服务器(SQL)
4、(I/O、SQL不是一直在读和执行的,是按照下标来进行的)
5、指定主服务器需要记录哪些数据库下的sql语句(my.cnf中指定)

三、配置信息
1.Mysql主服务器:

版本:mysql Ver 14.14 Distrib 5.7.20
IP:192.168.168.226
PORT:3306

  • Mysql从服务器

版本:mysql Ver 14.14 Distrib 5.7.20
IP:192.168.168.227
PORT:3306

  • 服务器:

CentOS 7

二、搭建步骤
  • 配置主服务器的配置文件,执行如下命令:

查看主服务器的配置文件

more /etc/mycnf

在这里插入图片描述

  • 编辑主服务器的数据库配置文件信息my.cnf

vi /etc/my.cnf

添加如下信息: 
server-id=226 
log_bin=/var/log/mysql/mysql-bin.log 
read-only=0 
binlog-do-db=test 
binlog-ignore-db=mysql

在这里插入图片描述

  • 修改完配置文件要重启服务器重启服务器
service mysqld restart

在这里插入图片描述

  • 重启服务器提示启动失败,查看log日志文件
    在这里插入图片描述

日志文件显示目录不存在,因为配置文件中指定的mysql日志文件的目录还没有创建,需要创建

在这里插入图片描述

  • 创建mysql日志文件的目录
cd /var/log/
mkdir mysql
cd mysql
touch mysql-bin.log

在这里插入图片描述

  • 创建完目录后重启服务,重启服务器提示启动失败,查看log日志文件
service mysqld restart

在这里插入图片描述

显示日志文件的权限不足

在这里插入图片描述

通过ssh工具给文件夹和文件赋权限

在这里插入图片描述

  • 赋权限后重启服务,显示启动成功
service mysqld restart

在这里插入图片描述

  • 指定主服务器下的从服务器有哪些

登录主服务器,执行如下命令:

mysql -u root -p
set global validate_password_policy=0;
grant replication slave on *.* TO 'backup'@'192.168.168.227' identified by 'Likang123qwe'; 
flush privileges;

在这里插入图片描述

登录数据库,查看是否设置成功

在这里插入图片描述

2.Mysql从服务器:
  • 编辑从服务器的数据库配置文件信息my.cnf(只修改前两行就可以了)

vi /etc/my.cnf
在这里插入图片描述

接下来的操作和主服务一样的:
创建文件夹和文件
给文件夹和文件赋权限
重启mysql服务

  • 指定从服务器下的主服务器有哪些

查看主服务器的状态

show master status\G

在这里插入图片描述

登录从服务器,执行如下命令(主要根据主库的状态信息来配置):

change master to
master_host='192.168.168.226',master_user='backup',master_password='Likang123qwe',master_log_fil
e='mysql-bin.000002',master_log_pos=154;

查看从服务器的状态

show slave status\G

在这里插入图片描述

显示失败,开启主、从的端口,然后重启服务器

主服务器下执行
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
从服务器下执行
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

查看从服务的状态还是显示连接失败

在这里插入图片描述

注意:重启服务之后,master_log_file='mysql-bin.000002’的值也得根据主服务器下实际最新的来修改

change master to
master_host='192.168.168.226',master_user='backup',master_password='Likang123qwe',master_log_fil
e='mysql-bin.000003',master_log_pos=154;

查看从服务器的状态

show slave status\G

在这里插入图片描述

依旧显示失败,失败的原因是UUID重复了,需要修改UUID(如果Linux系统是克隆过来的,常出现这个问题)直接通过SSH工具,删除从服务器下/var/lib/mysql目录中的auto.conf文件即可)

在这里插入图片描述

重启从服务器,登录mysql,查看从服务器的状态
从服务器下
Slave_IO_Running: Yes Slave_SQL_Running: Yes
如果都为yes,则主从搭建成功

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值