配置MYSQL主从数据库同步

在线网址:

https://www.syncnavigator.cn/chm/index.htm

 

官网下载:https://www.syncnavigator.cn

创建第一个同步项目


使用 HKROnline SyncNavigator 创建一个数据库同步项目。只需要通过简单的配置,创建完成后您可以随时执行数据库同步任务。

1. 点击 "SyncNavigator(Client)" 图标进入系统。

2. 在登录界面中输入连接到的服务器地址,点击 "确定" 按钮开始连接。

  • 注意:这里不是登陆您的数据库,而是登陆到本软件的管理端。
  • 默认情况下直接点击 "连接" 按钮即可(本机默认已经安装)。
  • 默认服务器登录用户名为 "admin" 密码为空。
  • 本机服务器地址 = 127.0.0.1 。
  • 您可以使用域名或者IP地址作为服务器地址。如果指定了端口号可以使用 IP:Port 方式填写。

3. 切换到 "同步管理" 面板中点击 "新建" 按钮开始创建同步项目。


4. 首先切换到 "来源数据库" 选项卡。填写同步的来源数据库信息。 

  • 一般情况下只需要输入数据库地址,数据库名称,登录用户名,登录密码。

  • 数据库地址: 连接到的数据库地址。可以是域名或者IP地址。如果指定了端口号可以使用 IP:Port 方式填写。
  • 数据库名称: 使用的数据库名称。如果已经指定了默认的登录数据库可以为空。
  • 登录用户名: 登录数据库服务器使用的用户名。如果需要使用Windows账户登录请变更 "登录方式"
  • 连接测试: 测试输入的信息是否正确。如果连接失败则会返回具体错误信息。

 

5. 切换到 "目标数据库" 选项卡。以相同的方式填写同步的目标数据库。 

  • 您只需要创建一个新的目标数据库,软件会自动创建最大兼容的表结构。

  • 如果您希望目标数据库与来源数据库表结构完全一致,您只需要在目标数据库创建一个空表结构即可。
  • 当您使用 MySQL 作为来源数据库时,同步的表至少需要一个主键。
  • 目标数据库不应包含外键约束,因为它可能导致部分数据无法同步。
  • 如果您的目标数据库与来源数据库结构(如字段类型,约束)不兼容,这可能导致部分数据无法同步。
  • 假设您设置来源库为 192.168.1.2 ,设置目标数据库为 192.168.1.3, 那么数据将从192.168.1.2 同步到 192.168.1.3。如果您的方向设置错误,可能会导致数据被覆盖。

6. 切换到 "同步内容设置" 选项卡。选择需要同步的数据库表。

  • 如果需要设置每个表的具体内容可以点击 "详细设置" 按钮进行调整。

  • 您可以设置条件过滤。比如只查询评分大于90的表记录,或者隐藏不需要同步的字段。
  • 如果在这一个步骤未勾选任何表则不会同步任何内容。

    主从同步的定义
    主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。
    使用主从同步的好处:

    通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能
    提高数据安全,因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据
    在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能
    主从同步的机制

    Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。

    在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接收到该日志的一个副本。从服务器可以指定执行该日志中的哪一类事件(譬如只插入数据或者只更新数据),默认会执行日志中的所有语句。

    每一个从服务器会记录关于二进制日志的信息:文件名和已经处理过的语句,这样意味着不同的从服务器可以分别执行同一个二进制日志的不同部分,并且从服务器可以随时连接或者中断和服务器的连接。

    主服务器和每一个从服务器都必须配置一个唯一的ID号(在my.cnf文件的[mysqld]模块下有一个server-id配置项),另外,每一个从服务器还需要通过CHANGE MASTER TO语句来配置它要连接的主服务器的ip地址,日志文件名称和该日志里面的位置(这些信息存储在主服务器的数据库里

    配置主从同步的基本步骤
    有很多种配置主从同步的方法,可以总结为如下的步骤:

    在主服务器上,必须开启二进制日志机制和配置一个独立的ID
    在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号
    在开始复制进程前,在主服务器上记录二进制文件的位置信息
    如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)
    配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置
    详细步骤
    我的配置环境
    主库系统:linux(centos7) mysql版本:5.7.24
    从库系统:windows10 mysql版本:5.7.25
    为避免主从同步版本不一致问题,我觉得应该从库版本>=主库版本,这样高版本会兼容低版本日志文件(未遇到过这种情况)

    开始配置
    备份主服务器原有数据到从服务器

    mysqldump -uroot -p --all-databases --lock-all-tables > ~/master_db.sql
    1
    说明:

    -u :用户名
    -p :示密码
    –all-databases :导出所有数据库
    –lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改 ~/master_db.sql :导出的备份数据(sql文件)位置,可自己指定
    在从Windows上的mysql进行数据还原
    将linux刚才生成的sql文件通过ftp工具导入到win,然后进入win的mysql执行sql文件进行数据还原,这样两个数据库的内容就是相同的啦
    编辑设置mysqld的配置文件,设置log_bin和server-id
    进入到linux系统,并配置数据库
    sudo vim /etc/my.cnf
    1

    根据需求还可以配置如下字段
    log_slave_updates=1
    binlog-do-db=db_name # 需要同步的数据库
    binlog-ignore-db=mysql # 被忽略的数据库
    binlog_format=ROW
    重启mysql服务

    service mysql restart
    1
    登入主服务器linux的mysql,创建用于从服务器同步数据使用的帐号

    GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';
    FLUSH PRIVILEGES;
    1
    2
    查看主数据库的二进制日志文件信息

    SHOW MASTER STATUS;
    1

    File为使用的日志文件名字,Position为使用的文件位置,这两个参数须记下,配置从服务器时会用到
    转到win10找到Windows中MySQL的配置文件my.ini

    将server_id设置为2

    重启windows的mysql服务(可在任务管理器-服务中设置)
    进入windows的mysql中,设置连接到主服务器

    change master to master_host='192.168.137.135', master_user='slave', master_password='slave',master_log_file='mysql_bin.000002', master_log_pos=590;
    1
    这里的file文件名、位置就是主服务器的日志文件名和位置
    开启同步,并查看同步状态

    start slave;
    show slave status;
    1
    2
    然后看到这两个Yes就很棒棒,表示已经成功啦(下面的图是我在navicat里用命令出来的,你也可以直接在命令行中执行命令)

    成功
    你在主库中新建个数据库,看一下从库中是不是也同步了呢

    还是惯例,怎么样,哎,撒花花

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值