MySQL主从集群是一种数据库架构模式,由一个主数据库(Master)和多个从数据库(Slave)组成。在主从集群中,主数据库负责处理写操作(如插入、更新、删除),而从数据库则用于读操作。
主数据库是集群的核心,它接收来自客户端的所有写操作,并将这些操作记录到二进制日志(Binary Log)。从数据库通过连接到主数据库,并从主数据库的二进制日志中复制数据变更,以保持与主数据库的数据一致性。
💪主从集群的优势有两个方面:
- 高可用性:当主数据库发生故障时,可以快速切换到其中一个从数据库作为新的主数据库,从而确保系统的持续可用性。
- 数据冗余和读扩展:从数据库可以用于处理读操作,从而减轻主数据库的读负载。此外,通过将数据复制到多个从数据库,可以增加数据的冗余性,提高系统的可靠性。
💪在设置主从集群时,需要注意以下几点:
- 确保网络连接的稳定性和延迟较低,以保证主数据库和从数据库之间的数据同步效果。
- 配置正确的复制参数,包括复制用户权限、二进制日志格式等,以确保数据正确地从主数据库复制到从数据库。
- 定期监控主从数据库的状态,确保复制过程正常进行,并及时处理异常情况。
MySQL主从集群是一种常用的数据库架构模式,适用于高可用性和数据冗余要求较高的环境。通过合理配置和管理,可以有效提升数据库系统的性能和可靠性。
上次我们讲了Linux中Mysql的安装:
Linux安装Mysql(图文解说详细版,安装包tar包版)
文章目录
- 💪第一步,安装mysql服务
- 💪第二步,配置主机环境
- 💪第三步,给主机分配对从机的权限
- 💪第四步,配置从机环境
- 💪第五步,在从机配置主机地址
- 💪第六步,启动从机
- 💪第七步,验证集群
- 💪情况一:新增数据库
- 💪情况二:添加数据表
- 💪拓展:
- 💪第一步,编辑`my.cnf`文件,加个skip-grant-tables(登录时跳过权限检查)
- 💪第二步,重启mysql
- 💪第三步,登录mysql
- 💪第四步,修改密码
- 💪第五步,开启远程访问
这次我们搭建一主双从的集群,需要准备以下三台Linux服务器
ip | 端口 | 角色 |
---|---|---|
192.168.75.128 | 3306 | 从 |
192.168.75.129 | 3306 | 主 |
192.168.75.130 | 3306 | 从 |
💪第一步,安装mysql服务
原来博主写过安装mysql的文章,这里不在赘述:
标题 | 地址 |
---|---|
Linux安装Mysql(图文解说详细版,安装包tar包版) | https://blog.csdn.net/csdnerM/article/details/128202916 |
Linux安装Mysql(图文解说详细版,yum版本) | https://masiyi.blog.csdn.net/article/details/121095527 |
Windows安装Mysql(图文解说详细版,无msi版本) | https://masiyi.blog.csdn.net/article/details/127004660 |
Mac安装Mysql(图文解说详细版) | https://masiyi.blog.csdn.net/article/details/124326946 |
💪第二步,配置主机环境
这篇教程,是依据上面表格中的tar包安装,所以也是基于tar包去讲,请大家在能连到三台服务器的mysql之后才阅读该文章
为了避免服务器之间通不了信,所以我们需要关闭三台服务器的防火墙
service firewalld stop
找到etc/my.cnf
文件,没有的话就新建一个etc/my.cnf
#[必须]主服务器唯一ID
server-id=1
##[必须]启用二进制日志,指名路径。比如:自己本地的路径/log/mysqlbin
log-bin=masiyi-bin
加入以下配置
之后重启数据库:
注意看图里面的操作
💪第三步,给主机分配对从机的权限
#在主机MySQL里执行授权主从复制的命令
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'从机器数据库IP' IDENTIFIED BY '123456.com';
这条命令是用于将复制权限授予名为 “slave1” 的从机器数据库,并且将允许从机器使用用户名为 “slave1”,密码为 “123456.com” 连接到主服务器。
例如本安装环境则执行:
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.75.128' IDENTIFIED BY '123456.com';
GRANT REPLICATION SLAVE ON *.* TO 'slave2'@'192.168.75.130' IDENTIFIED BY '123456.com';
执行好之后查看主机的配置信息:
show master status;
记住File属性和Position属性,这个我们待会会用到
- File: 当前正在操作的binlog文件的名称为"masiyi-bin.000001"。
- Position: 表示读取该binlog文件时的位置,当前位置为750。这个位置可以用来恢复或回放特定的数据库操作。
💪第四步,配置从机环境
同样的找到etc/my.cnf
第一部从机:128
添加
#[必须]从服务器唯一ID
server-id=2
第二部从机:130
#[必须]从服务器唯一ID
server-id=3
💪第五步,在从机配置主机地址
CHANGE MASTER TO
MASTER_HOST='主机的IP地址',
MASTER_USER='主机用户名',
MASTER_PASSWORD='主机用户名的密码',
MASTER_LOG_FILE='mysql-bin.具体数字',
MASTER_LOG_POS=具体值;
在本环境中命令如下:
130机器:
CHANGE MASTER TO MASTER_HOST='192.168.75.129',MASTER_USER='slave2',MASTER_PASSWORD='123456.com',MASTER_LOG_FILE='masiyi-bin.000001',MASTER_LOG_POS=750;
128机器:
CHANGE MASTER TO MASTER_HOST='192.168.75.129',MASTER_USER='slave1',MASTER_PASSWORD='123456.com',MASTER_LOG_FILE='masiyi-bin.000001',MASTER_LOG_POS=750;
💪第六步,启动从机
128和130都要执行
#启动slave同步
START SLAVE;
执行成功之后查看从机状态
SHOW SLAVE STATUS;
如上图所示则为启动成功
💪第七步,验证集群
💪情况一:新增数据库
主机情况:
从机情况:
create database test_mysql1;
主机成功添加
从机130成功同步:
💪情况二:添加数据表
CREATE TABLE `test` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
从机128成功同步
其他的情况这里就不一一列举了
💪拓展:
在安装过程中初始话时mysql的默认密码用不了
💪第一步,编辑my.cnf
文件,加个skip-grant-tables(登录时跳过权限检查)
💪第二步,重启mysql
[root@localhost bin]# sh ../support-files/mysql.server restart
💪第三步,登录mysql
进入bin文件夹直接运行./mysql
就直接进来了
💪第四步,修改密码
先刷新权限,才能修改密码
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456.com';
💪第五步,开启远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456.com' WITH GRANT OPTION;
flush privileges;
通过本篇博客,我们详细介绍了Linux系统下安装MySQL主从集群的过程,并提供了图文解说,希望能给读者带来实用的指导。
在本文中,我们首先介绍了MySQL主从集群的概念和优势,了解了它如何提供高可用性和数据冗余的解决方案。接着,我们逐步演示了安装和配置主从集群的关键步骤,包括设置主库、创建复制用户、配置从库等。每个步骤都配有详细说明和相关截图,以便读者更好地理解和实践。
通过搭建MySQL主从集群,您可以实现数据的高可用性和读写分离,提升数据库系统的性能和稳定性。此外,博主还提供了一些拓展知识,帮助您更好地应对实际环境中可能遇到的挑战。
希望本篇博客能为读者提供清晰的指导,能够成功在Linux系统上安装MySQL主从集群。如果您有任何疑问或需要进一步的帮助,请随时提问。感谢阅读!