`
fivipwu
  • 浏览: 11408 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mySQL数据同步设置

阅读更多

使用的mysql版本:mysql4.0.X

master: 192.168.1.102
slave:    192.168.1.109

如果是win机子修改c:\winnt\my.ini 如果是linux的机子请修改 /etc/my.cnf

一、master操作
1、修改my.ini
##############
server-id=1
log-bin=c:\mysql\logs\mysql_binary_log
binlog-do-db=test
binlog-ignore-db=mysql
##############

说明
binlog-do-db=test                  允许同步的数据库
binlog-ignore-db=mysql      不允许同步的数据库

2、然后重启mysql
c:\mysql\bin\mysql restart  或 /etc/init.d/mysql restart

3、在master上增加一个同步的用户名
mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
注:
如果mysql版本在4.0.2以前的版本请用
mysql> GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';

4、接下来操作要master上要同步的数据库
mysql> USE test;
mysql> FLUSH TABLES WITH READ LOCK;       #锁定要同步的test表,然后导出数据结构


执行如下命令查看master的状态
mysql> SHOW MASTER STATUS;

得到如下结果
Code:
+----------------------+----------+--------------+------------------+
| File                 | Position | Binlog_do_db | Binlog_ignore_db |
+----------------------+----------+--------------+------------------+
| mysql_binary_log.025 | 796947     | test            |  mysql              |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


接下来备份要同步数据库(为导入slave作准备)
$ mysqldump --opt test > test.sql


mysql> UNLOCK TABLES;                   #已做好同步数据库结构导出后,解锁这个表

二、slave操作
1、把master里导出的同步数据库结构再导入slave的mysql里
mysql tes < test.sql

2、修改slave的my.ini
####################
log-bin=c:\mysql\logs\mysql_binary_log
server-id=2
master-host=192.168.1.102
master-user=backup
master-password=123456
master-connect-retry=60
replicate-do-db=test
####################


说明:
master-host=192.168.1.102                #master的IP
master-user=backup                            #master上作为同步用的用户名
master-password=123456                 #同步用户名的密码
master-connect-retry=60                     #设置同步的时间
replicate-do-db=test                             #需要同步的数据库

3、重新启用mysql
c:\mysql\bin\mysql restart  或 /etc/init.d/mysql restart

4、进入slave的mysql,对mysql进行操作
mysql> stop slave;                  #停止slave服务器

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='192.168.1.102',
    ->     MASTER_USER='backup',
    ->     MASTER_PASSWORD='123456',
    ->     MASTER_LOG_FILE='mysql_binary_log.025',
    ->     MASTER_LOG_POS=796947;

mysql> START SLAVE;         #开启slave服务器就可以同步了



注:
  MASTER_LOG_FILE='mysql_binary_log.025',
  MASTER_LOG_POS=796947;
上面这两条是一开始从master上进入mysql,运行 SHOW MASTER STATUS; 查看到的,在实际操作中也可以不加的。

 

 

 

##############################################
在master的mysql里运行
mysql > show processlist;
看到两个 system user 就是正常的
+----+-------------+----------------+------+-------------+------+---------------
--------------------------------------------------------+------------------+
| Id | User        | Host           | db   | Command     | Time | State
                                                        | Info             |
+----+-------------+----------------+------+-------------+------+---------------
--------------------------------------------------------+------------------+
|  1 | system user |                | NULL | Connect     | 4499 | Waiting for ma
ster to send event                                      | NULL             |
|  2 | system user |                | NULL | Connect     | 4499 | Has read all r
elay log; waiting for the I/O slave thread to update it | NULL             |
|  7 | root        | localhost:1309 | test | Query       | 0    | NULL
                                                        | show processlist |
| 40 | backup      | ETE-KF2:1354   | NULL | Binlog Dump | 513  | Has sent all b
inlog to slave; waiting for binlog to be updated        | NULL             |
+----+-------------+----------------+------+-------------+------+---------------
--------------------------------------------------------+------------------+
4 rows in set (0.00 sec)

mysql> show master status;
出现如下:
+----------------------+----------+--------------+------------------+
| File                 | Position | Binlog_do_db | Binlog_ignore_db |
+----------------------+----------+--------------+------------------+
| mysql_binary_log.001 | 1011     | test         | mysql            |
+----------------------+----------+--------------+------------------+



在slave的mysql里运行
mysql> show processlist;
出现如下:
+----+-------------+----------------+------+---------+------+-------------------
----------------------------------------------------+------------------+
| Id | User        | Host           | db   | Command | Time | State
                                                    | Info             |
+----+-------------+----------------+------+---------+------+-------------------
----------------------------------------------------+------------------+
|  3 | root        | localhost:1353 | test | Query   | 0    | NULL
                                                    | show processlist |
|  4 | system user |                | NULL | Connect | 740  | Waiting for master
 to send event                                      | NULL             |
|  5 | system user |                | NULL | Connect | 730  | Has read all relay
 log; waiting for the I/O slave thread to update it | NULL             |
+----+-------------+----------------+------+---------+------+-------------------
----------------------------------------------------+------------------+
3 rows in set (0.00 sec)


mysql> show slave status;
+---------------+-------------+-------------+---------------+-------------------
---+---------------------+-----------------------+---------------+--------------
---------+------------------+-------------------+-----------------+-------------
--------+------------+------------+--------------+---------------------+--------
---------+
| Master_Host   | Master_User | Master_Port | Connect_retry | Master_Log_File
   | Read_Master_Log_Pos | Relay_Log_File        | Relay_Log_Pos | Relay_Master_
Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_do_db | Replicate_ig
nore_db | Last_errno | Last_error | Skip_counter | Exec_master_log_pos | Relay_l
og_space |
+---------------+-------------+-------------+---------------+-------------------
---+---------------------+-----------------------+---------------+--------------
---------+------------------+-------------------+-----------------+-------------
--------+------------+------------+--------------+---------------------+--------
---------+
| 192.168.1.102 | backup      | 3306        | 10            | mysql_binary_log.0
01 | 1011                | ete-kf2-relay-bin.002 | 227           | mysql_binary_
log.001  | Yes              | Yes               | test            |
        | 0          |            | 0            | 1011                | 223
         |
+---------------+-------------+-------------+---------------+-------------------
---+---------------------+-----------------------+---------------+--------------
---------+------------------+-------------------+-----------------+-------------
--------+------------+------------+--------------+---------------------+--------
---------+
1 row in set (0.00 sec)

 

参考文档:
http://forums.gentoo.org/viewtopic.php?t=241123
http://www.howtoforge.com/mysql_database_replication_p2
http://dev.mysql.com/doc/refman/4.1/en/replication-howto.html
http://bbs.chinaunix.net/viewthread.php?tid=692359&highlight=mysql

分享到:
评论

相关推荐

    mysql-oracle数据同步

    本文将深入探讨MySQL到Oracle的数据同步过程,以及如何在同步过程中修改MySQL数据表的标识。 首先,我们要理解MySQL和Oracle是两种不同的关系型数据库管理系统(RDBMS)。MySQL以其开源、轻量级、高效的特点被广泛...

    SpringBoot定时任务实现Oracle和mysql数据同步

    在`syncData`方法中,我们将编写实现Oracle到MySQL数据同步的代码。数据同步通常涉及到数据库查询、数据转换以及数据插入等操作。这里我们可以使用JDBC或者ORM框架(如MyBatis)来操作数据库。 1. **Oracle数据库...

    特别有用的MySQL数据实时同步到ES轻松配置手册

    在当今大数据时代,实时数据同步成为许多企业和组织的关键需求,特别是从关系型数据库如 MySQL 到分布式搜索引擎如 ElasticSearch(ES)的实时同步。本文将详细介绍如何利用灵蜂数据集成软件 BeeDI 实现这一目标。 ...

    使用Kettle同步mysql数据,增量同步教程执行步骤

    在IT行业中,数据同步是一项关键任务,特别是在大数据处理和企业级应用中。本文将深入探讨如何使用Kettle工具实现MySQL数据库之间的增量同步。Kettle,也称为Pentaho Data Integration (PDI),是一款强大的ETL(提取...

    mysql历史数据同步到clickhouse 已测试

    MySQL到ClickHouse的历史数据同步是一项常见的任务,尤其是在大数据分析场景中。ClickHouse是一个高性能的列式数据库管理系统(Column-Oriented DBMS),适用于在线分析处理(OLAP)和实时数据分析。MySQL作为流行的...

    使用Kettle同步mysql数据,增量同步

    在处理MySQL数据库的数据同步任务时,Kettle能够提供增量同步的功能,有效实现数据的实时更新。增量同步通常指的是只同步自上次同步以来发生改变的数据,而不是对整个数据库内容进行全量同步,这样能够节省网络带宽...

    java实现两个mysql同步主库的数据

    下面我们将深入探讨如何使用Java实现两个MySQL数据库之间的数据同步,以及涉及的相关知识点。 首先,我们需要理解MySQL的复制原理。MySQL的主从复制是基于日志的,主库上的所有更改都会被记录到二进制日志(binlog...

    Java开发springboot-整合mysql-binlog-connector-java实现MySQL数据同步-源代码+文档

    Java开发springboot-整合mysql-binlog-connector-java实现MySQL数据同步-源代码+文档 Java开发springboot-整合mysql-binlog-connector-java实现MySQL数据同步-源代码+文档 Java开发springboot-整合mysql-binlog-...

    Mysql5.7数据同步配置文档

    本文档基于Forwin系统环境下的MySQL 5.7数据同步配置,旨在详细介绍如何设置MySQL 5.7的数据同步。 #### 二、同步前准备 在进行MySQL 5.7数据同步之前,我们需要做一些准备工作: 1. **确认MySQL版本一致**:用于...

    MySQL.rar_mysql 数据同步_数据同步

    本文将深入探讨“MySQL双向数据同步”这一关键知识点,这在分布式系统、多数据中心部署以及高并发环境下确保数据一致性至关重要。 MySQL的数据同步主要通过复制技术实现,分为异步复制、半同步复制和全同步复制三种...

    spring-cloud模块spring-boot微服务 mysql数据同步到elasticsearch 实时同步

    "mysql数据同步到elasticsearch 实时同步"这部分涉及到数据的实时迁移和同步。MySQL是一种广泛使用的开源关系型数据库,而Elasticsearch则是一个高性能、分布式、全文搜索引擎,常用于大数据分析和实时搜索场景。将...

    易语言mssql和mysql数据自动同步

    易语言mssql和mysql数据自动同步源码,mssql和mysql数据自动同步,RefreshTask,ComputeEndTime,ComputeOneTime,ComputeTimeInte,ComputeWeekOneTime,ComputeWeekTimeInte,ComputeMonthOneTime,ComputeMonthTimeInte,...

    jdbc java mongodb mysql 相互同步

    本文将深入探讨如何使用Java的JDBC(Java Database Connectivity)接口与MongoDB、MySQL数据库进行数据交互,并实现相互之间的数据同步。 首先,我们需要理解JDBC,它是Java语言访问数据库的标准API,能够连接并...

    mysql 主从 数据同步

    ### MySQL主从数据同步知识点详解 #### 一、MySQL主从复制原理及配置步骤 **主从复制**是MySQL的一项重要特性,它允许用户将一台MySQL服务器(主服务器)的数据实时复制到另一台或多台MySQL服务器(从服务器)。...

    shell脚本 同步mysql数据

    shell脚本 同步mysql数据的一种实现方式,简单配置即可使用

    docker使用Canal实现ClickHouse实时同步MySQL数据

    docker使用Canal实现ClickHouse实时同步MySQL数据

    canal实现mysql到ES数据实时同步

    - 观察Canal Server和Adapter的日志,确认数据同步是否正常。 - 使用Elasticsearch的查询语句验证数据是否已正确写入。 在实际应用中,还需要考虑一些高级特性,如数据过滤(只同步部分表或部分列)、数据一致性...

    mysql实时同步pg

    在这个场景中,我们将使用Flink CDC来实现MySQL到PostgreSQL的实时数据同步。 首先,我们需要配置源数据库和目标数据库的信息。在MySQL端,我们需要指定要同步的数据库和表,以及MySQL的连接信息。在PostgreSQL端,...

Global site tag (gtag.js) - Google Analytics