MySQL主从集群是一种数据库架构模式,由一个主数据库(Master)和多个从数据库(Slave)组成。在主从集群中,主数据库负责处理写操作(如插入、更新、删除),而从数据库则用于读操作。
主数据库是集群的核心,它接收来自客户端的所有写操作,并将这些操作记录到二进制日志(Binary Log)。从数据库通过连接到主数据库,并从主数据库的二进制日志中复制数据变更,以保持与主数据库的数据一致性。
主从集群的优势有两个方面:
在设置主从集群时,需要注意以下几点:
MySQL主从集群是一种常用的数据库架构模式,适用于高可用性和数据冗余要求较高的环境。通过合理配置和管理,可以有效提升数据库系统的性能和可靠性。
上次我们讲了Linux中Mysql的安装:
Linux安装Mysql(图文解说详细版,安装包tar包版)
这次我们搭建一主双从的集群,需要准备以下三台Linux服务器
ip | 端口 | 角色 |
---|---|---|
192.168.75.128 | 3306 | 从 |
192.168.75.129 | 3306 | 主 |
192.168.75.130 | 3306 | 从 |
原来博主写过安装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属性,这个我们待会会用到
同样的找到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(登录时跳过权限检查)[root@localhost bin]# sh ../support-files/mysql.server restart
进入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主从集群。如果您有任何疑问或需要进一步的帮助,请随时提问。感谢阅读!