用于工作需要 今天研究了下mysql 的主从数据同步
master :
mysql: 5.0.26-community-nt-log
ip :192.168.4.100
slave:
mysql:5.5.19
ip:192.168.17.129
master
在my.cnf 中的
[mysqld]
log-bin =var/mysql/log/mysql-bin.log
server-id=1
binlog-do-db=test //需要同步的库
binlog-do-db=siteschool
binlog-ignore-db=mysql//不需要同步的库
//在master上设置binlog-ignore-db对减少网络带宽,减少replicate lag是有好处的。
执行sql
建立同步的账号
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave001'@'192.168.17.129' IDENTIFIED BY
'123456';
mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 6908
Binlog_Do_DB: test,siteschool
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.13 sec)
mysql> flush tables with read lock;
dump 对应的表后 待slave 建好后执行下面的
mysql> unlock tables;
slave 中
修改 /etc/my.cnf
[mysqld]
server-id=2
replicate-do-db=test 要同步的库
read-only=1
slave-net-timeout=10
relay-log-index = /data/mysql/relaylog/relaylog
relay-log-info-file = /data/mysql/relaylog/relaylog
relay-log = /data/mysql/relaylog/relaylog
如果 /data/mysql/relaylog 目录不存在 则需要创建,并赋给 mysql 用户 读写权限 不然在
start slave 的时候 会报 error:13d的权限错误
[root@localhost relaylog]# /etc/init.d/mysql restart
mysql 5.5 以后貌似不能支持直接在 my.cnf 里面修改master 相关的参数
采用如下sql 执行
mysql> change master to master_user='slave001';
mysql> change master to master_password='123456';
此处需要和show master status\G; 对应
mysql> change master to master_log_file='mysql-bin.000001';
mysql> change master to master_log_pos='6908';
mysql> start slave;
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.4.100
Master_User: slave001
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 6908
Relay_Log_File: relaylog.000657
Relay_Log_Pos: 244
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 6908
Relay_Log_Space: 530
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.03 sec)
正常 OK
更新test 表中的数据时 二进制文件在变化有 6908-----7478
如果在建立slave 的时候 master Position 发送变化
需要reset slave 后从新 按照上面的方法 重建
[root@localhost relaylog]# cat relaylog
/data/mysql/relaylog/relaylog.000679
814
mysql-bin.000001
7478
二进制的文件为的位置为 6908 一致
分享到:
相关推荐
本文将深入探讨MySQL到Oracle的数据同步过程,以及如何在同步过程中修改MySQL数据表的标识。 首先,我们要理解MySQL和Oracle是两种不同的关系型数据库管理系统(RDBMS)。MySQL以其开源、轻量级、高效的特点被广泛...
Spring Boot作为Java领域的一个热门微服务框架,提供了强大的定时任务功能,能够帮助我们实现不同数据库间的数据同步,比如Oracle到MySQL。本篇文章将详细讲解如何利用Spring Boot的定时任务特性,结合Java的相关...
MySQL到ClickHouse的历史数据同步是一项常见的任务,尤其是在大数据分析场景中。ClickHouse是一个高性能的列式数据库管理系统(Column-Oriented DBMS),适用于在线分析处理(OLAP)和实时数据分析。MySQL作为流行的...
下面我们将深入探讨如何使用Java实现两个MySQL数据库之间的数据同步,以及涉及的相关知识点。 首先,我们需要理解MySQL的复制原理。MySQL的主从复制是基于日志的,主库上的所有更改都会被记录到二进制日志(binlog...
在IT行业中,数据同步是一项关键任务,特别是在大数据处理和企业级应用中。本文将深入探讨如何使用Kettle工具实现MySQL数据库之间的增量同步。Kettle,也称为Pentaho Data Integration (PDI),是一款强大的ETL(提取...
在当今大数据时代,实时数据同步成为许多企业和组织的关键需求,特别是从关系型数据库如 MySQL 到分布式搜索引擎如 ElasticSearch(ES)的实时同步。本文将详细介绍如何利用灵蜂数据集成软件 BeeDI 实现这一目标。 ...
1. **确认MySQL版本一致**:用于同步的MySQL版本需要保持一致,这是实现数据同步的基础条件之一。 2. **确保初始数据一致性**:参与同步的数据库的初始数据需要完全一致,这一点对于避免同步过程中的数据不一致问题...
在处理MySQL数据库的数据同步任务时,Kettle能够提供增量同步的功能,有效实现数据的实时更新。增量同步通常指的是只同步自上次同步以来发生改变的数据,而不是对整个数据库内容进行全量同步,这样能够节省网络带宽...
- 观察Canal Server和Adapter的日志,确认数据同步是否正常。 - 使用Elasticsearch的查询语句验证数据是否已正确写入。 在实际应用中,还需要考虑一些高级特性,如数据过滤(只同步部分表或部分列)、数据一致性...
Java开发案例springboot-整合flink-cdc-connectors实现MySQL实时数据同步-源代码+文档 Java开发案例springboot-整合flink-cdc-connectors实现MySQL实时数据同步-源代码+文档 Java开发案例springboot-整合flink-cdc-...
### MySQL主从数据同步知识点详解 #### 一、MySQL主从复制原理及配置步骤 **主从复制**是MySQL的一项重要特性,它允许用户将一台MySQL服务器(主服务器)的数据实时复制到另一台或多台MySQL服务器(从服务器)。...
7. **微服务架构**:在微服务中,每个服务通常维护自己的数据库,通过API Gateway或Service Mesh进行服务间的通信,实现数据同步。这种方法强调服务自治,但需要良好的服务间协调机制。 在实现过程中,需要注意以下...
Java开发springboot-整合mysql-binlog-connector-java实现MySQL数据同步-源代码+文档 Java开发springboot-整合mysql-binlog-connector-java实现MySQL数据同步-源代码+文档 Java开发springboot-整合mysql-binlog-...
4. **数据迁移工具**:例如Flyway和 Liquibase,用于数据库版本管理和迁移,它们可以在特定条件下运行SQL脚本或自定义Java代码,实现数据同步。 5. **手动编程**:直接编写Java代码,通过JDBC和MongoDB Java Driver...
docker使用Canal实现ClickHouse实时同步MySQL数据
这个脚本实现了跨服务器增量同步mysql数据的功能,可以同步多个表。 在使用这个脚本的时候需要注意有修改的地方就是源表配置、目标表配置需要修改成自己的服务器和登录mysql数据库的用户名和密码。基础配置中需要...
在开发环境中,有时需要在两台MySQL数据库之间实现数据同步,以确保数据的一致性和冗余。本教程将详细介绍如何在两台运行相同系统(FreeBSD 5.4)和软件(Apache 2.0.55、PHP 4.4.0、MySQL 4.1.15)的服务器上配置...
MySQL的数据同步主要通过复制技术实现,分为异步复制、半同步复制和全同步复制三种模式。双向数据同步则是让两个或多个MySQL实例之间互相复制数据,确保所有节点上的数据保持一致。以下我们将详细讲解这一过程。 1....