精华内容
下载资源
问答
  • mysql数据库同步

    2014-05-27 21:19:19
    mysql数据库主从同步,做主dns和从dns同步
  • Mysql数据库同步

    2013-10-25 17:19:59
    通过修改my.cnf文件来设置Mysql数据库间的主从同步
  • MySQL数据库同步

    2011-01-30 11:48:33
    自用mysql自身功能实现服务器间多数据库数据同步功能
  • MYSQL 数据库同步

    千次阅读 2008-03-13 10:36:00
    MYSQL 数据库同步 最近要做数据库同步,如果网上找了例子,成功,记录下来,下回再看.这个是网上找的一编文章.以下配置在本机上已经成功:实现功能:A为主服务器,B为从服务器,初始状态时,A和B中的数据信息相同,当A中...

    MYSQL 数据库同步 

     最近要做数据库同步,如果网上找了例子,成功,记录下来,下回再看.

    这个是网上找的一编文章.

    以下配置在本机上已经成功:

    实现功能:A为主服务器,B为从服务器,初始状态时,A和B中的数据信息相同,当A中的数据发生变化时,B也跟着发生相应的变化,使得A和B的数据信息同步,达到备份的目的。
            
    环境:
    A、B的MySQL数据库版本同为4.1.20
    A:
    操作系统:Windows 2003 server
    IP地址:192.168.100.1
    B:
    操作系统:Windows 2003 server
    的IP地址:192.168.100.2

    配置过程:
    1、在A的数据库中建立一个备份帐户,命令如下:
    GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
    TO backup@'192.168.100.2'
    IDENTIFIED BY ‘1234’;

    建立一个帐户backup,并且只能允许从192.168.100.2这个地址上来登陆,密码是1234。

    2、因为mysql版本新密码算法不同,所以进入mysql下,输入:set password for 'backup'@'192.168.100.2'=old_password('1234');

    3、关停A服务器,将A中的数据拷贝到B服务器中,使得A和B中的数据同步,并且确保在全部设置操作结束前,禁止在A和B服务器中进行写操作,使得两数据库中的数据一定要相同!

    4、对A服务器的配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
    server-id=1
    log-bin=c:/log-bin.log

    server-id:为主服务器A的ID值
    log-bin:二进制变更日值

    5、重启A服务器,从现在起,它将把客户堆有关数据库的修改记载到二进制变更日志里去。

    6、关停B服务器,对B服务器锦熙配置,以便让它知道自己的镜像ID、到哪里去找主服务器以及如何去连接服务器。最简单的情况是主、从服务器分别运行在不同的主机上并都使用着默认的TCP/IP端口,只要在从服务器启动时去读取的mysql/my.ini文件里添加以下几行指令就行了。
    [mysqld]
    server-id=2
    master-host=192.168.100.1
    master-user=backup
    master-password=1234
    //以下内容为可选
    replicate-do-db=backup

    server-id:从服务器B的ID值。注意不能和主服务器的ID值相同。
    master-host:主服务器的IP地址。
    master-user:从服务器连接主服务器的帐号。
    master-password:从服务器连接主服务器的帐号密码。
    replicate-do-db:告诉主服务器只对指定的数据库进行同步镜像。

    7、重启从服务器B。至此所有设置全部完成。更新A中的数据,B中也会立刻进行同步更新。如果从服务器没有进行同步更新,你可以通过查看从服务器中的mysql_error.log日志文件进行排错。

    8、由于设置了slave的配置信息,mysql在数据库data目录下生成master.info,所以如有要修改相关slave的配置要先删除该文件,否则修改的配置不能生效。

     

    如果要两台同时同步的话,只要server-id不同就行了.如果同步失败,可以用下面的语句来查看.
    1.show master status/G; 查看主机情况.
    2.show slave status/G; 从机情况.

    如果两台的ID和文件不同,可以用下面的语句更正.

    CHANGE MASTER TO master_def [, master_def] ...

         master_def:

          MASTER_HOST = 'host_name'

        | MASTER_USER = 'user_name'

        | MASTER_PASSWORD = 'password'

        | MASTER_PORT = port_num

        | MASTER_CONNECT_RETRY = count

        | MASTER_LOG_FILE = 'master_log_name'

        | MASTER_LOG_POS = master_log_pos

        | RELAY_LOG_FILE = 'relay_log_name'

        | RELAY_LOG_POS = relay_log_pos

    展开全文
  • Mysql 数据库同步

    2014-09-24 13:34:38
    数据库同步(Windows操作系统) 1. 数据库同步(主从)原理简介 A.数据库的主从同步主要有三条线程来实现, 1. 主机操作日志记录线程 2. 从机操作日志记录线程 3. 从机读取日志记录产生数据库操作的线程 ...

    数据库同步(Windows操作系统)

    1.   数据库同步(主从)原理简介

         A.数据库的主从同步主要有三条线程来实现,

             1.      主机操作日志记录线程

             2.      从机操作日志记录线程

             3.      从机读取日志记录产生数据库操作的线程

       B.数据库同步过程

                  主机对数据库进行操作后,操作记录会以日志形式保存在log-bin中,从机读取主机日志文件,保存在本地relay-log中,从机读取relay-log日志产生数据库动作操作从机             数据库以使主从数据库同步

    2.my.ini文件配置

        server-id=114   //id标识,必须唯一

        log-bin=mysql-bin //主机日志文件,用于记录数据库操作

        replicate-do-db=test03 //备份到本地的数据库

        relay-log=relay-bin  //从机读取主机日志文件后保存到这个日志文件中

        relay-log-index=relay-bin-index //日志当前位置

        log-slave-updates=1  //赋予从机在读取主机的日志记录后进行的数据库操作拥有产生日志文件的权限

    3.数据库控制台操作

        1. 登陆数据库 mysql –uroot–p.

        2. 创建一个数据库访问账户,赋予访问、备份和文件操作的权限

         GRANT ALLPRIVILEGES(要赋予的权限)  ON *.*(要操作数据库名称) TOUSER(用户名称)@’%’(允许访问的ip地址,%为允许所有)  IDENTIFIED BY  ‘*****’(密码)

         FLUSHPRIVILEGES; //让账户生效

         3. 查看master状态

        SHOW MASTER STATUS;结果如图3-1所示

                                                           

    图3-1

    4.      从机操作

             Stop salve; // 停止slave

             Change master to master_host=’*******’,(主机ip地址)

              Master_user=’user’,(在主机上创建的账户,拥有访问、读取和操作文件的权限)

              Master_password=’*******’,(创建账户是赋予的访问密码)

              Master_log_file=’****’,(主机master状态的file名称)

              Master_log_pos=***;(主机当前日志文件的位置)

    5.      Start salve; 启动同步     如果所有配置都正确的话现在就可以实现数据库的同步了



    展开全文
  • MySQL 数据库同步

    2011-11-15 11:34:10
    其实,MySQL同步,并不是使用同步 sync 这个单词而是用重作 replication,很准确表明了 MySQL 数据库操作的实质,是作同样的操作,或叫重作同样的操作,以保持主数据库服务器 master 与 从属服务器 slave 之样的...

    MySQL 的数据同步,在 MySQL 官方网站文档上,叫 Replication 字面是重作的意思,意译就是同步了。其实,MySQL 的同步,并不是使用同步 sync 这个单词而是用重作 replication,很准确表明了 MySQL 数据库操作的实质,是作同样的操作,或叫重作同样的操作,以保持主数据库服务器 master 与 从属服务器 slave 之样的数据保持一致。replication 就是有重复,重作的意思。

    MySQL 为了实现 replication 必须打开 bin-log 项,也是打开二进制的 MySQL 日志记录选项。

    MySQL 的 bin log 二进制日志,可以记录所有影响到数据库表中存储记录内容的 sql 操作,如 insert / update / delete 操作,而不记录 select 这样的操作。因此,我们可以通过二进制日志把某一时间段内丢失的数据可以恢复到数据库中(如果二进制日志中记录的日志项,包涵数据库表中所有数据,那么,就可以恢复本地数据库的全部数据了)。 而这个二进制日志,如果用作远程数据库恢复,那就是 replication 了。这就是使用 replication 而不用 sync 的原因。这也是为什么要设置 bin-log = 这个选项的原因。

    在同步过程中,最重要的同步参照物,就是同步使用那一个二进制日志文件,从那一条记录开始同步。

    下面,我们来讲解最核心的过程:

    1. 首先,你应该有两个或两个以上的 MySQL 数据库服务器,版本最好是在 3.3 以上 (当然,两个服务器不一定是两台机器,一台机器上安装两个 MySQL 服务是可以的,同时,如果你对 MySQL replication 原理十分精通的话,你甚至可以在一个 MySQL 服务的两个不同数据库 database 之间作同步,看有没有需要了)说明: 这两个服务器一般设置一个为主服务器,或叫源服务器, master mysql server, 另一台或其他多台就是 replication slave 同步从服务器了。一台 slave 与多台 slave 设置方法是一样的,这样你就可以作类似数据库集群了。
    2. 设置可访问 MySQL 帐号,操作以英文为准。
      • MySQL 帐号一般设置为限定 IP 访问,以保障安全性
      • MySQL 帐号一般在 master 与 slave 设置为相同帐号,同时是远程可访问
      • 特别注意,如果你用 Linux / Unix 操作系统,那一定要注意一下防火墙 firewall 有没有限制 MySQL 远程访问,如果是,最好是打开远程访问端口,并作好访问 IP 限制
      • 由于 my.cnf 中要明文存储 MySQL 帐号密码,请注意保护 my.cnf 不让其他用户访问到(看来要向 MySQL 说明下以后用密码存 passwd)。
    3. 第三步,当然是设置两个服务器要同步的数据库为同样的数据库了。

      这里有一些技巧,包括 mysql 的 sql 指令说明下。

      • 方法之一,就是英文说明中说的,先锁定数据库读写功能 ( 其实最好是停止 mysqld 服务,再作备份) 然后用 tar 备份数据库目录,转到 slave 服务器相同数据目录中。
      • 方法之二,使用 mysql studio 这样的实用工具,直接使用 mysql studio 的 backup database 工具把数据库同步
      • 以上两种方法都是 master 数据库中有不少数据记录,按上两 种方法得到 master 与 slave 有相同数据库与数据记录。 而第三种方法,则是适合于新建数据库的情况,特别适合于 master 与 slave 在 my.cnf 已经设置好 replication 关系 (但 未指定 database 同步数据库 ) 的情况: 这就是使用 mysql 的 sql 语句 load table from master 与 load data from master;
        load table from master 可以从 master 数据库把表结构复制到 slave 数据库中,这样可以建立同步的表。
        load data from master 是从 master 数据库把数据导入到 slave 数据表中,条件是 master 从一开始安装运行就使用了 bin-log 参数而保存有二进制日志
    4. 接下来就是配置 master 与 slave 的 my.cnf 文件,使得 replcation 能有合适的启动参数以支持数据同步

      技巧: 如果你使用 win2k 的 mysql 那么,你可以下载 mysql.com 出的官方 mysql administrator 实用程序,直接在 mysql administrator 中即可配置 master 与 slave ,同时也可以配置 query-cache 。

      在 master 的 my.cnf(如果是 win32 那就是 my.ini)增加

      [mysqld] 
      log-bin = 
      server-id=1 

      注意,上面的 log-bin = 中的 等号 = 是不可少的。

      在 slave 的 my.cnf 修改

      [mysqld] 
      server-id=2 # 如果有多个 slave 就改为不重复的 id 就好,在mysql 4.1 中,这个已经取消了 
      master-host=10.10.10.22 
      master-user=backup #同步用户帐号 
      master-password=1234 
      master-port=3306 
      master-connect-retry=60 #预设重试间隔60秒 
      replicate-do-db=test # 告诉slave只做 test 数据库的更新 
      bin-log = 
    5. 检查 master 与 slave 配置状态,使用 show master status; 与 show slave status; 这两个 SQL 指令即可在 master 与 slave 查看配置状态。这里有两个状态变量十分重要
      mysql > SHOW MASTER STATUS; 
      +---------------+----------+--------------+------------------+ 
      | File   | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
      +---------------+----------+--------------+------------------+ 
      | mysql-bin.003 | 73  | test   | manual,mysql  | 
      +---------------+----------+--------------+------------------+ 

      注意 File 是 mysql-bin.003 而 position 是 73

      这个文件是对 test 这个 数据库的二进制日志记录,记录数据变化的当前记录条数是 73

      前面我们说过,二进制日志记录着某个数据库所有数据记录变化的 sql 操作语句,如 insert / update / delete 等,正是因为如此,在 slave 同步 mysql 数据库操作时,其实是读取master 中这个 mysql-bin.003 二进制日志中的 sql 操作,同在 slave 中执行这些 sql 操作,所以,同步成功有以下几个条件:

      • master 与 slave 有相同的数据库表结构,最好 database name 也一样(可以设置为不一样的 database name)
      • master 与 slave 有相同的初始数据记录,保证同步操作开始后两者数据一致
      • master 必须使用 bin-log 二进制日志记录(推荐 slave 也使用 bin-log)
      • slave 是从 master 的 bin-log 是读取 sql 记录来同步,所以,从哪一条 log 开始读取很重要(下面的第 7 条操作,就是保证 slave 能与 master 保持相同的记录读取,并读取正确的 bin-log 日志文件)
    6. 在 slave 执行下面 sql 操作
      mysql> CHANGE MASTER TO 
      ->  MASTER_HOST='master_host_name', 
      ->  MASTER_USER='replication_user_name', 
      ->  MASTER_PASSWORD='replication_password', 
      ->  MASTER_LOG_FILE='recorded_log_file_name', 
      ->  MASTER_LOG_POS=recorded_log_position;     

      这里,把 上面的 redcorded_log_file_name 改为 mysql-bin.003 而 recorded_log_position 改为 73 (特别注意,这是关系关键)。

    linux 下的 mysql 与 win2k 下的 MySQL 作 replication 会有什么技巧:

    1. 注意 Linux 下有大小写区分,而 win2k 下没有。所以最好使用 mysqldump 方法来让两个数据库初始化同步,而不能使用 tar 方式直接 copy 数据库表文件。使用 mysql studio 来作 database backup 也不错
    2. 注意 win2k 下的 mysql 配置文件是 c:\my.ini。你可以使用 mysql administrator 0.9 这个图型界面的实用工具来设置。
    3. 如果 win2k 下的 mysql 为 master , 一定要注意 show master status 中显示出来的结果。
    4. win2k 下的 mysql 为 slave 时,注意不要把同步时间周期设置太长。

    实战

    环境配置

    操作系统:linux
    MySQL:5.14
    主服务器A IP:192.168.1.2(假设)
    从服务器B IP:192.168.1.3(假设)
    同步数据库: test(用于测试,两台服务器初始数据一致)  

    主服务器(master)设置

    新建一个用于备份的用户(直接用root用户也可以):
    GRANT FILE ON *.* TO backup@192.168.1.3 IDENTIFIED BY ‘123456’;
    
    编辑“/etc/my.cnf”(不同服务器可能路径不同)文件,在该文件添加以下内容:
    server-id=1
    #设置服务器id,主从服务器要不同
    log-bin=mysqllog
    #启用二进制变更日志(即把所有对数据进行操作的SQL命令以二进制格式记入日志)
    #其中mysqllog是日志文件的名称,日志的文件名是mysqllog.n,其中n是一个6位数字的整数。
    binlog-do-db=test 
    #指定需要启用二进制变更日志的数据库"test"
    binlog-ignore-db = mysql
    #指定不需要启用二进制变更日志的数据库"mysql"
    
    重启mysqld服务,可以用mysql命令:SHOW MASTER STATUS;查看“启用二进制变更日志”情况  

    从服务器(slave)设置

    编辑“/etc/my.cnf”(不同服务器可能路径不同)文件,在该文件添加以下内容:
    
    server-id=2
    #设置服务器id,主从服务器要不同
    replicate-do-db=test 
    #指定需要从master同步过来的数据库"test"
    replicate-ignore-db = mysql
    #指定不需要从master同步过来的数据库"mysql"
    
    #设置master服务器的IP地址、登陆用户、密码、端口
    master-host=192.168.1.2
    master-user=backup
    master-password=123456
    master-port=3306
    
    master-connect-retry=60
    #连接master服务器失败后重试的延迟时间
    slave-skip-errors=all
    #跳过所有错误继续执行同步工作
    log-slave-updates
    #启用从属服务器上的日志同步功能  

    注意:如果从服务器上存在master.info文件(如:/var/lib/mysql/master.info),要使以上配置选项生效,在重启mysqld服务前必须删除该文件。

    重启mysqld服务,可以用mysql命令:SHOW SLAVE STATUS;查看同步情况

    从数据库的相关命令:

    slave st; slave start ; 开始停止从数据库。 
    show slave statusG; 显示从库正读取哪一个主数据库二进制日志  

    成功完成以上配置后,在主服务器A的test库里添加数据或删除数据,在从服务器B的test库里马上也能看到相应的变更。两台服务器的同步操作可以说是瞬间完成的。


    展开全文
  • MYSQL数据库同步工具

    2021-05-07 15:21:49
    MYSQL数据库同步工具MYSQL数据库同步工具功能说明配图 MYSQL数据库同步工具 GIT地址:https://gitee.com/michlee/mysql-sync 功能 目前仅针对Mysql数据库 1.表结构同步 (支持1对多数据库配置:新表/单表/多表/全表...

    MYSQL数据库同步工具

    GIT地址:https://gitee.com/michlee/mysql-sync

    	因开发需要,经常要同步MYSQL数据库结构及部分基础数据到其他生产服务器。而且有时候需要一次性同步到多台服务器,而且不同的服务器同步的表结构还不一样。Navicat一次就只能同步一台服务器。所以写了这个同步工具。可以一次性把需要同步的表结构同步到需要同步的其他服务器(单个/多个都可以)。
    	用这个工具先创建同步配置,根据不同的同步需求,创建不同的同步配置。然后根据不同的需求,选择相应的配置进行同步即可。配置一次,以后每次同步直接选配置即可,不用再每次都去选服务器。
    

    在这里插入图片描述

    功能

    目前仅针对Mysql数据库
    
    1.表结构同步 (支持1对多数据库配置:新表/单表/多表/全表 (备注:多配置全表同步速度会慢一点。而且全表同步时,表之间有关联的表,如果关联表不存在,有可能第一次同步时有些表会创建失败,需要再同步一次。))
    
    2.视图同步 (支持1对多数据库配置)
    
    3.函数同步 (支持1对多数据库配置)
    
    4.数据全量同步 (1对1数据库配置, 支持多表)
    
    5.本地启动 http://localhost:8765/
    
    6.默认管理账户admin/123456
    

    说明

    	程序采用SpringBoot + Shiro + Mysql + thymeleaf架构,做了基础的用户权限控制(有其他需求可自行扩展)。前端页面使用了LayUi(本人做后端,前端不太熟,不喜勿喷)。
    	
    配置方式1:
    	用数据库配置(脚本自行导入tabsync.sql,参考图示),并且配置可以根据不同用户设置为私有(公开配置,所有用户都可见,私有配置只有自己可见)。~~(mysqlType【版本】字段:暂时没有任务意义,仅做数据库版本记录)~~ 
    
    配置方式2:
    	配置JSON文件(master.json/targetList.json; 使用测试类直接执行,该方式未写数据同步,可自行改代码)。
    master.json:(源数据库/单个)
    {"host": "127.0.0.1:3306",
      "username": "root",
      "password": "root",
      "database": "test",
      "mysqlType": "5",
      "charSet": "utf8"
    }
    
    targetList.json:(目标数据库/JSON数组(可多个))
    [
      {"host": "192.168.1.2:6603",
        "username": "root",
        "password": "root",
        "database": "test",
        "mysqlType": "5",
        "charSet": "utf8"
      },
      {"host": "192.168.1.3:6603",
        "username": "root",
        "password": "root",
        "database": "test",
        "mysqlType": "5",
        "charSet": "utf8"
      }
    ]
    
    可以配置自动执行代码-程序启动完成自动执行一次(ExecuteTask.java)
    
    备注:
    表结构比对借鉴于https://gitee.com/alchemystar/Lancer,并按需求做了部分改动。
    

    配图

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • mysql数据库同步canal框架分享PPT mysql数据库同步canal框架分享PPT
  • mysql 数据库同步

    2011-09-05 14:39:00
    参考文章 http://blog.csdn.net/nuanchun666/article/details/2069301 实现了 mysql 数据库同步,在这里简单记录一下工程,以备后用。 1. master 主机 192.168.2.10,slave 主机 192.1
  • SyncNavigator是一款功能强大的数据库同步软件,适用于SQLSERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用...
  • sqlserver与mysql数据库同步,相关的配置,非常实用。
  • ...  客服QQ1793040 ----------------------------------------------------------   ...关于HKROnline SyncNavigator 注册机价格的问题 ...HKROnline SyncNavigator 8.4.1 企业版数据同步软件 自2009年第一个版...
  • 以下的文章主要向大家介绍的是MySQL数据库同步的实际操作步骤以及对实现MySQL数据库同步的实际应用代码与其在实际操作过程中值得我们大家注意的相关事项的描述,希望会给你带来一些帮助在此方面。 在网上我找了...
  • MySQL数据库同步小工具(Java实现)

    万次阅读 2018-07-05 11:12:54
    近期公司做个报表系统,为了报表系统中复杂的查询条件,不影响线上业务系统的使用,研究了一下MySQL数据库同步,下面用Java代码实现MySQL数据库同步,以便自己查阅! 数据库同步实现功能点: 1.支持跨服务器跨库...
  • window的MySql数据库同步需求设备与网络环境配置A服务配置B服务配置 需求 现有两个mysql服务实例,要求从A服务中的数据库实时更新到B服务中的数据库 设备与网络 A服务实例(10.10.10.167) B服务实例(10.10.10.190...
  • MySql数据库同步复制

    2011-11-10 10:07:38
    MySql数据库同步复制 MySql数据库同步复制  该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。  数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(windows下为my.ini,Unix/...
  • sqlserver、mysql数据库同步备份工具及其帮助手册详解
  • 数据库同步实现方法 ...MySQL数据库同步,两台安装一样的系统,都是 ,安装了Apache2.0.55和PHP4.4.0,MySQL的版本是4.1.15,都是 安装配置 分别安装好MySQL,都安装在/usr/local/MySQL目录下
  • SyncNavigator是一款功能强大的数据库同步软件,适用于SQLSERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用...
  • memcache与mysql数据库同步

    万次阅读 2012-12-20 16:50:12
    Good Heavens ...memcache与mysql数据库同步 ...面试某电商时,面试官问到了memcache和mysql数据库同步的问题,当时只是粗略的想到了mysql的触发器,现在查找了一些资料。mysql memca
  • redis缓存和mysql数据库同步

    千次阅读 2018-01-29 13:56:21
    redis缓存和mysql数据库同步 解决方案 一、对强一致要求比较高的,应采用实时同步方案,即查询缓存查询不到再从DB查询,保存到缓存;更新缓存时,先更新数据库,再将缓存的设置过期(建议不要去更新缓存内容,直接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,225
精华内容 5,690
关键字:

mysql数据库同步

mysql 订阅