今天调试MYSQL主从同步测试,现把其中过程做一个简单的记录。
一、准备服务器
由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,
Master的版本肯定不能高于Slave版本。
我用的主服务器(Master)和从服务器(Slave)的版本都是5.0.22,操作系统是Linux CentOS 5.2.x。
Master的主机IP为:192.168.1.129
Slave的主机IP为:192.168.1.131,
2个MySQL的basedir目录都是/usr/local/mysql,datadir都是:/usr/local/mysql/data。
二、设置同步服务器
1、master 配置
每个同步服务器都必须设定一个唯一的编号,否则同步就不能正常运行了。接下来开始修改 my.cnf,在[mysqld]下面增加以下几行:
server-id = 1 //服务器编号
log-bin = mysql-bin //开启日志
set-variable=binlog-ignore-db=mysql //不需要同步的表
set-variable=binlog-do-db = test // 要同步的表,如果全部同步可以不写此行
然后在Master上增加一个账号专门用于同步,如下:
登录mysql服务器
#./mysql -uroot -p
mysql>GRANT REPLICATION SLAVE ON *.* TO slave@192.168.1.131 IDENTIFIED BY '密码';
从库连接主库进行测试: >mysql -h192.168.1.129 -uslave -p123456
此处测试应该是通过的,否则 mysql 配置有问题.
2、slave 配置
修改my.cnf配置,在[mysqld]下面增加以下几行:
server-id=2 //服务器编号
master-host = '192.168.1.129'
master-user = 'slave'
master-password = '123456'
master-port = 3306
master-connect-retry = 120
重新启动mysql,登录mysql查看:
mysql>SHOW SLAVE STATUS\G;
如果出现:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
表明配置成功,可以进行测试。
如果Slave_IO_Runing:No 则说明权限分配有错误,重新分配权限。
如果Slave_SQL_Runing:No 则可用下面方法解决:
解决办法一、
Slave_SQL_Running: No
1.程序可能在slave上进行了写操作
2.也可能是slave机器重起后,事务回滚造成的.
一般是事务回滚造成的:
解决办法:
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
解决办法二、
首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值
进入master
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000094 | 33622483 | | |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
然后到slave服务器上执行手动同步:
mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3306,
> master_log_file='localhost-bin.000094',
> master_log_pos=33622483 ;
1 row in set (0.00 sec)
mysql> slave start;
手动同步需要停止master的写操作!
分享到:
相关推荐
在Debian系统中实现MySQL主从同步复制是一种常见的数据库高可用性和负载均衡策略。这种技术可以确保数据的安全性并提高系统的整体性能。接下来,我们将详细介绍如何在Debian环境下配置MySQL的主从同步复制。 #### 1...
### MySQL主从同步与读写分离配置详解 #### 一、实验目的 ...以上步骤涵盖了MySQL主从同步和读写分离的详细配置过程,以及可能出现的问题和解决方法。通过这些步骤,可以有效地提高数据库系统的稳定性和性能。
MySQL 主从同步是一种常见的数据库高可用性和负载均衡解决方案,它允许数据从一个主数据库(Master)实时复制到一个或多个从数据库(Slave)。在这种配置下,所有写操作都在主库上执行,然后由从库自动并异步地复制...
### MySQL主从安装部署知识点详解 #### 一、MySQL主从安装部署概述 MySQL 主从复制是一种常见的数据备份和负载均衡技术,在多个服务器之间同步数据。通过设置一个或多个从服务器来复制主服务器上的数据变更操作,...
MySQL主从同步是一种常见的数据库高可用性和负载均衡方案,尤其在处理大规模并发访问和确保数据安全性的场景下显得尤为重要。本案例详述了如何在Linux环境下配置MySQL的主从同步,以及进行读写分离,以提升系统的...
MySQL主从架构是一种常见的数据库高可用性和数据冗余解决方案,它允许数据在主数据库和从数据库之间进行实时或近实时的复制。以下是对标题和描述中提到的知识点的详细解释: 1. **MySQL安装**: - 可以通过RPM包...
### MySQL主从双机同步详解 ...通过细致的配置和测试,可以构建一个稳定可靠的MySQL主从同步系统。需要注意的是,随着业务的发展,可能还需要考虑多级复制、半同步复制等更高级的同步策略,以满足更高的需求。
在实际应用中,需要进行复制的测试,并调整配置,处理可能出现的问题,如数据同步延迟、复制冲突等问题。 综上所述,MySQL的主从复制模式为数据库的稳定运行和高效管理提供了可靠的解决方案。在实施过程中,需要...
主从复制是MySQL数据库的一种高可用性解决方案,其中一台服务器(主服务器)处理所有写操作,而其他服务器(从服务器)同步主服务器上的数据变化,从而形成一个读写分离的环境。这种设计模式有助于减轻主服务器的...
### MySQL主从同步镜像备份知识点详解 #### 一、MySQL主从同步基本概念 - **主从复制机制**:MySQL中的主从复制是一种数据复制技术,它将一个数据库(主服务器)的数据复制到另一个或多个数据库(从服务器),以此...
在开始讨论MySQL主从复制的原理和实战之前,我们需要了解其重要性。主从复制的主要作用是保证数据安全性和服务的持续运行。当主数据库发生故障时,从数据库可以接管业务,保证服务的连续性。同时,通过将数据复制到...
主从同步 在主数据库上,需要授予从数据库复制的权限,并查看主数据库的当前状态。可以使用以下命令: GRANT REPLICATION SLAVE ON *.* to 'root'@'192.168.109.132' identified by '123456'; show master status;...
MySQL主从复制技术是一种数据库复制技术,它可以在多个服务器之间复制数据,使得数据在不同位置保持一致。这种技术广泛应用于数据库的高可用性、负载均衡、数据备份、读写分离等场景。 知识点一:MySQL版本和操作...
MySQL主从复制是一种数据库高可用性和数据冗余的解决方案,尤其在分布式系统和大型数据库环境中极为常见。这个项目实例将带你深入理解这一机制,并通过实际操作来熟悉整个配置过程。 首先,MySQL主从复制的核心原理...
MySQL 的主从复制是一种常见的数据同步机制,用于在多个服务器之间复制数据。这种机制可以提高数据库系统的可用性、扩展性和容错能力。通过配置主从复制,可以从主服务器(Master)将数据变化自动同步到一个或多个从...
MySQL主从复制是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间保持同步,从而实现数据备份、负载均衡以及故障切换等功能。在本文中,我们将深入探讨MySQL主从复制的基本概念、解决的问题以及...
学习这个Demo,你可以了解MySQL主从复制的实际操作,熟悉复制配置、故障切换策略以及如何处理复制过程中遇到的问题。通过实践,你将更好地理解数据库高可用性的重要性,以及如何在生产环境中实施这种架构。