星形拓扑中的MySQL

星形拓扑中的MySQL,mysql,configuration,replication,master,topology,Mysql,Configuration,Replication,Master,Topology,我有一个中央数据库,其中包含MySQL 5.1-lastest-stable中的所有数据。 我想在主-主关系中连接多个客户端 问题: 如何在一个中间的1个中心服务器上建立一个星型拓扑,其中多个客户端数据库使一个客户端的更改首先传播到中央服务器,并从那里传播到所有其他客户端数据库? 数据库信息 我对所有表都使用inno db,并且启用了二进制日志。 除此之外,我还学习了如何在数据库之间进行主控。 所有表都有主键主整数自动递增。如果自动增量偏移量和开始调整到不同的客户端数据库,则不会出现主键冲突 我

我有一个中央数据库,其中包含MySQL 5.1-lastest-stable中的所有数据。
我想在主-主关系中连接多个客户端

问题: 如何在一个中间的1个中心服务器上建立一个星型拓扑,其中多个客户端数据库使一个客户端的更改首先传播到中央服务器,并从那里传播到所有其他客户端数据库?

数据库信息 我对所有表都使用inno db,并且启用了二进制日志。
除此之外,我还学习了如何在数据库之间进行主控。
所有表都有主键
主整数自动递增
。如果自动增量偏移量和开始调整到不同的客户端数据库,则不会出现主键冲突

我为什么要这个 我的客户端软件(不是网站或php)连接到笔记本电脑上的本地MySQL数据库,这需要同步到中央数据库,以便所有在笔记本电脑上使用该程序的人都能看到其他人所做的所有其他更改。
我不想直接连接到中央数据库,因为如果笔记本电脑和中央数据库之间的互联网连接中断,我的应用程序将死亡。

在此设置中,应用程序将继续运行,在与中央数据库重新建立连接之前,笔记本电脑不会从其他人那里获得更新。

是的,您可以在所述拓扑中设置多个MySQL数据库

您要做的就是所谓的复制


以下是MySQL 5.1手册中的部分。

这听起来像是一种特殊类型的MySQL复制拓扑的工作

我心目中的拓扑结构被称为“分发主机”,它来自本书第368-370页的副标题“主机、分发主机和从机”

您将需要以下内容

1数据库主服务器
1 DB分发主机(称为/dev/null从机或黑洞从机)
无论数据库从机的数量如何


数据库主机的设置

  • 安装MySQL 5.1.x
  • 确保/etc/my.cnf
    服务器id=1
    log bin=mysql bin
    过期日志天数=14
    默认存储引擎=InnoDB
  • 启动MySQL
  • 复位主机;(从数据库主机清除二进制日志)
  • 将数据加载到主机中
  • 授权选择,复制从机打开。复制程序“%”,由“repl password”标识
    数据库分发主机的设置

  • 安装MySQL 5.1.x
  • 确保/etc/my.cnf
    服务器id=2
    log bin=mysql bin
    过期日志天数=14
    默认存储引擎=黑洞
    跳过innodb
  • 启动MySQL
  • 将MASTER更改为MASTER\u HOST='DB MASTER的IP地址',MASTER\u PORT=3306,MASTER\u USER='replicator',MASTER\u PASSWORD='repl-PASSWORD',MASTER\u LOG\u FILE='mysql-bin.000001',MASTER\u LOG\u POS=106
  • 启动从机
  • 授权选择,复制从机打开。复制程序“%”,由“repl password”标识
  • 对于每个不在information_schema数据库和mysql数据库中的表,将每个表转换为BLACKHOLE存储引擎,如下所示:ALTER table tblname engine=BLACKHOLE
  • 复位主机;(从数据库分发主机清除二进制日志)

  • 数据库从属设备的设置

  • 安装MySQL 5.1.x
  • 确保/etc/my.cnf
    服务器id=3
    默认存储引擎=InnoDB
  • 启动MySQL
  • 将MASTER更改为MASTER\u HOST='DB MASTER的IP地址',MASTER\u PORT=3306,MASTER\u USER='replicator',MASTER\u PASSWORD='repl-PASSWORD',MASTER\u LOG\u FILE='mysql-bin.000001',MASTER\u LOG\u POS=106
  • 启动从机;(让复制迎头赶上,选中显示从属状态\G)
  • 停止奴隶
  • 将MASTER更改为MASTER\u HOST='DB分发主机的IP地址',MASTER\u PORT=3306,MASTER\u USER='replicator',MASTER\u PASSWORD='repl-PASSWORD',MASTER\u LOG\u FILE='mysql-bin.000001',MASTER\u LOG\u POS=106
  • 启动从机
    此设置的目的是使DB Master only进程SQL仅用于DB Master。要复制到DB从属服务器的SQL由DB分发主机处理。这将减轻数据库主机处理SQL到从机的传输;这成为DB分发主机的责任。所有从机都从DB分发主机而不是DB主机读取SQL更改

    虽然我不完全了解您的应用程序,但此拓扑应该正确地支持一个中央数据库和多个读从机,而不必对中央数据库进行I/O绑定。只要每台笔记本电脑处理一组不同于其他笔记本电脑的独特客户机,应用程序就应该向客户机数据库中插入、更新和删除数据


    警告

    您可能必须对DB从机进行严格的测试,以确保数据不会因为黑洞设置而消失。如果出现这种情况,请尝试删除“默认存储引擎=黑洞”并重新加载所有内容



    鉴于需要对浮动从属服务器使用MySQL循环复制作为同步DBs的一种方法,因此在

    中应提出此类性质的未来问题,以下是一种解决方案:

    1分贝主机
    4分贝从机


    数据库主机的设置

  • 安装MySQL 5.1.x
  • 确保/etc/my.cnf
    服务器id=1
    log bin=mysql bin
    过期日志天数=14
    默认存储引擎=InnoDB
  • 启动MySQL
  • 复位主机;(从数据库主机清除二进制日志)
  • 将数据加载到主机中
  • 授权选择,复制从机打开。复制程序“%”,由“repl password”标识
    数据库从属设备的设置

  • 安装MySQL 5.1.x
  • 确保/etc/my.cnf
    服务器id=(唯一服务器id)
    log bin=mysql bin
    违约-