这里我使用单台服务器上的两个mysql实例进行搭建,主要用到了mysql自带的mysqld_multi
一、复制原理
开始搭建前有个mysql复制原理的基础知识需要补充:
mysql进行主备复制使用到了三个线程:
1.主库上的转存储线程:
会将mysql server提交的事务写入到二进制文件中,这个二进制文件就叫做binlog。
2.备库上的连接线程:
备库启动后,负责和主库通信,读取binlog,同时,将binlog存储进自己的一个叫中继日志的relaylog中。
3.备库上的relaylog重放线程:
此线程会将relaylog中的事件在备库上进行回放,说白点就是重新执行一次
二、搭建步骤
1./etc新增文件mysqld_multi.cnf
将/user/share/mysql/my-innodb-heavy-4G.cnf文件复制到/etc,重新命名为xxx.cnf(任何你想要的名字)
在配置文件中新增两个实例
[mysqld1] # generic configuration options port = 3306 socket = /home/tmp/server1/mysql1.sock datadir = /home/mysql/data1 log-error = /home/mysql/data1/error.log pid-file = /home/mysql/data1/mysql1.pid log_bin = mysql-bin server_id = 101 [mysqld2] port = 3307 socket = /home/tmp/server2/mysql2.sock datadir = /home/mysql/data2 log-error = /home/mysql/data2/error.log pid-file = /home/mysql/data2/mysql2.pid log_bin = mysql-bin server_id = 102 relay_log = /home/relaylog/mysql-relay-bin log_slave_updates = 1 read_only = 1
这里我会将将mysqld1这个实例做为主库,mysqld2这个实例作为备库
2.做好了配置之后开启两个实例:
mysqld_multi --defaults-file=xxx.cnf start 1,2 &
3.开启实例后检测两个实例是否正常启动:
mysqld_multi --defaults-file=xxx.cnf report 1
mysqld_multi --defaults-file=xxx.cnf report 2
如果都看到如下结果,说明实例已启动成功:
4.开启复制前主库的准备工作:
1.在主库上增加一个复制账号:
使用sock文件登陆mysql:
mysql -u root -S/home/tmp/server1/mysql1.sock(这个套接字文件还记得吗,是在之前定义实例的时候 定义的)
grant replication slave,replication client on *.* to repl@'127.0.0.1' identified by 'xxxxx';
2.查看主库上的binlog是否开启:
show master status;
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 507 | | | +------------------+----------+--------------+------------------+
mysql-bin.000001这个文件的前缀就是你在配置实例1时指定的log-bin。
5.开启复制:
登陆到备库:
mysql -u root -S/home/tmp/server2/mysql2.sock
change master to master_host = "localhost", master_user = 'repl', master_password = 'xxx',(你之前在主库上创建复制账号时指定的) master_log_file = 'mysql-bin.000001', master_log_pos = 0, master_port = 3306;
查看复制是否开始工作:
Slave_IO_State: Waiting for master to send event Master_Host: localhost Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 507 Relay_Log_File: mysql-relay-bin.000174 Relay_Log_Pos: 235 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes
当看到Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes证明io通信线程和sql回放线程都已经启动。至此,主备复制结构配置完成
相关推荐
#### 一、MySQL主备复制机制简介 MySQL复制(Replication)是MySQL数据库系统中一个重要的特性,它允许数据从一台MySQL服务器(称为Master)复制到另一台或多台MySQL服务器(称为Slave)。复制可以实现数据冗余和...
在搭建和使用MySQL主备复制以及Mycat的过程中,可能遇到同步延迟、数据不一致、故障转移等问题。此时需要检查配置文件、日志文件,分析网络状况和服务器性能,以排除故障。 以上知识点详细阐述了在Windows环境下,...
以上知识点全面介绍了在MySQL数据库中配置主备同步的步骤和需要注意的关键点,这些操作步骤详细记录了如何为生产环境中的数据库搭建高可用性的架构,包括了如何准备数据、配置主从服务器、启动复制进程以及验证同步...
为了实现主备复制,还需要在主服务器上创建一个具有特定权限的复制用户,例如`mysql1`,并使用`GRANT`语句赋予其`REPLICATION SLAVE`和`FILE`权限,这样备用服务器才能连接并读取主服务器的二进制日志。 在实际操作...
顶级文档,全是干货!本文档主要对MySQL主从复制进行简单的介绍,包括原理简介、搭建步骤、状态检查、同步中断及排查、备库重建。
MySQL主从复制是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间保持同步,从而实现数据备份、负载均衡以及故障切换等功能。在本文中,我们将深入探讨MySQL主从复制的基本概念、解决的问题以及...
在MySQL安装和配置完成后,我们转向主备环境的搭建。这通常涉及复制配置文件、同步数据和设置复制参数。在主服务器上,我们需要开启二进制日志,修改`my.cnf`文件中的`log-bin`选项。同时,设置一个唯一的服务器ID...
2. MySQL主从复制搭建 搭建MySQL主从复制涉及到Master端和Slave端的配置部署,以及建立主从同步。具体步骤如下: - Master端配置部署:需要打开二进制日志功能,并为复制操作创建一个专用用户,并赋予相应的权限。...
在IT领域,数据库管理是至关重要的,特别是在企业级应用中。本教程将深入探讨如何在...通过这个教程,你可以掌握在CentOS7系统上搭建高可用MySQL主主互备环境的全过程,提升数据库管理能力,确保业务系统的稳定运行。
MySQL主主搭建与Keepalived实现双机热备是构建高可用数据库系统的关键技术,它确保了即使在一台服务器故障时,数据服务也能不间断运行。以下是对这一主题的详细解释: 1. **MySQL主主复制**: 主主复制是一种...
资源名称 :MySQL主从复制、搭建、状态检查、中断排查及备库重做 实战手册资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
### 使用Keepalived实现对MySQL主从复制的主备自动切换 #### 一、概述 在高可用(High Availability, HA)系统设计中,保证关键服务的不间断运行至关重要。MySQL作为广泛使用的开源关系型数据库管理系统,其高可用...
MySQL 8.0.22 主从复制配置是数据库高可用性和数据安全性的重要实践,它允许数据在多个服务器之间实时同步,确保即使在一个服务器出现问题时,数据仍然可以正常访问。以下是一个详细的步骤指南: **主服务器配置:*...
你需要为每个MySQL节点定义一个VRID,并设定VIP,当Keepalived检测到主节点不可用时,VIP将会切换到备节点。 2. 健康检查:Keepalived通过健康检查来确定MySQL节点的状态,可以使用简单的TCP或脚本检查。一旦检测到...
Galera Cluster 的特性包括同步复制主备无延迟、支持多主同时读写、保证数据一致性、集群中各节点保存全量数据、节点添加或删除自动检测和配置、行级别并行复制、不需要写 binlog 等。 虚拟化平台下MySQL数据库集群...
根据题目描述中的“mysql集群搭建”这一主题,下面详细介绍如何搭建一个基于主从复制模式的MySQL集群,并实现读写分离和负载均衡。 ##### 1. 系统环境准备 - **操作系统**: Ubuntu 10.04 x86_64 - **网络环境**: ...