• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 如何在一台windows主机上实现MySQL的主从复制?

如何在一台windows主机上实现MySQL的主从复制?

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了windows,实现,机上等相关知识,希望本文的分享对您有所帮助
MySQL的主从复制是通过binlog日志来实现的,主从复制中的“主”指的是MySQL主服务器上的数据库,“从”指的是MySQL从服务器上的数据库,且这种复制是基于数据库级别的,为此从服务器中的数据库名称必须和主服务器中的数据库名称保持一致,那么,要想实现主从复制,我们至少要有两个MySQL服务器(最好是两个MySQL服务器分别位于不同的主机上,或者在一个主机上安装两个MySQL,端口不同即可)。

一般来说,MySQL数据库的主库和从库是分布在不同的主机上。假如,现在我们只有一台主机,且是windows系统,如何实现MySQL的主从复制呢?方法如下:

这里我们只介绍 一主一从 的操作方法。

我的电脑已经安装了 xampp 集成环境(同wamp安装包类似),可以把它里面的MySQL服务作为MySQL的主服务器。那么,我们还需要在这台电脑上再安装一个MySQL,作为数据库的从服务器。

我的电脑xampp中已安装的MySQL版本为 5.6.20,端口为3306。

我们需要再安装一个MySQL(最好安装同版本和相近版本的,以免出现问题),端口改为3307

数据库服务器的参数:


  • 主服务器(master): IP为127.0.0.1,端口为3306

  • 从服务器(slave): IP为127.0.0.1,端口为3307

主服务器配置:

修改主服务器的数据库配置文件(E:\xampp\mysql\bin\my.ini),在 [mysqld] 标签的最下面,添加如下代码:

#需要备份的数据库

binlog-do-db=test

#不需要备份的数据库

binlog-ignore-db=mysql

#开启二进制日志

log-bin=mysql-bin

#服务器id

server-id=1

保存退出,重启MySQL主服务器。

binlog-do-db用于指定需要同步的数据库,binlog-ignore-db指定不需要同步的数据库,如果这两个参数都不设置,则从服务器会复制主服务器的所有数据库。

一般不用root账号作同步账号,为此,我们需要在主服务器上创建一个新的用户(如 user01,密码为123456)。

这里我们用命令行的方式创建,方法如下:

打开cmd,切换至 E:\xampp\mysql\bin,用 root 账户连接MySQL主服务器:

mysql -uroot -p -P3306

创建新用户:

create user 'user01'@'127.0.0.1' identified by '123456';

(@后面的ip地址为允许连接的客户端的ip地址。)

然后,给新用户配置主从复制的权限:

grant replication slave on *.* to 'user01'@'127.0.0.1' identified by '123456';

(@后面的ip地址为允许连接的客户端的ip地址,如果改为 '%',就表示客户端没有ip地址的限制)

如果主服务器的数据库(test)中,已经有数据,我们需要先手动把主服务器中的数据复制到从服务器。方法如下:

在本案例中,我们只备份一个数据库(test),test中有一个表basic_user,表中也已经有了数据。为了防止我们复制数据的时候,数据库test中的数据发生更新,我们需要先锁定数据库,命令如下:

flush tables with read lock;

这个命令是全局读锁定,它会给主服务器中的所有数据库都加上读锁,这里顺便说一下读锁和写锁的区别:


  • read lock(读锁):也叫共享锁,允许所有的读操作,但阻塞写操作,即所有连接只可以读数据,但不允许写数据。

  • write lock(写锁):也叫排它锁、独占锁,只允许当前连接的读和写,不允许其他并发的读操作和写操作。


锁定主服务器的数据库后,我们在从服务器中,也创建一个数据库test,并将所有的表(包括表结构和表数据)都导入。

然后,我们执行下面的命令,解锁:

unlock tables;

查看主服务器的 master 状态:

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000008 | 498 | test | mysql | |

+------------------+----------+--------------+------------------+-------------------+

从服务器配置:

修改从服务器的数据库配置文件(E:\mysql\my.ini),在 [mysqld] 标签的最下面,添加如下代码:

#端口

port = 3307<

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • windows环境下Mysql中文乱码问题解决方法
  • windows环境中mysql忘记root密码的解决方法详解
  • Windows环境下重置mysql密码操作命令
  • Windows服务器下MySql数据库单向主从备份详细实现步骤分享
  • 在Windows主机上定时备份远程VPS(CentOS)数据的批处理
  • Windows下实现MySQL自动备份的批处理(复制目录或mysqldump备份)
  • Ubuntu与windows双系统下共用MySQL数据库的方法
  • Windows平台下MySQL常用操作与命令
  • Windows mysql 双向同步设置方法 详细篇
  • windows环境下mysql数据库的主从同步备份步骤(单向同步)

相关文章

  • 2018-12-05MySQL学习之外键的图文详解
  • 2018-12-05mysql数据库从服务器移植到个人PC的方法
  • 2018-12-05mysql中最大值和最小值以及总和查询与计数查询的实例详解
  • 2017-05-11Mysql中Insert into xxx on duplicate key update问题
  • 2018-12-05MySQL命令大全(收藏)
  • 2018-12-05mysql仿oracle的decode效果查询
  • 2017-05-11MySQL优化之如何了解SQL的执行频率
  • 2017-05-11MySQL高速缓存启动方法及参数详解(query_cache_size)
  • 2017-05-11MySQL union 语法代码示例分析
  • 2018-12-05MySQL数据库的备份与维护详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 关于mysql create routine权限的代码实例详解
    • 解析如何使用Zend Framework 连接数据库
    • php基础之连接mysql数据库和查询数据
    • MySQL中查询的有关英文字母大小写问题的分析
    • mysql下mysqladmin的日常管理命令代码分享
    • Linux中使用mysqladmin extended-status配合Linux命令查看MySQL运行状态
    • sphinxql如何得到结果数及show meta的详细说明
    • MySQL Like语句的使用方法
    • PLSQL开发实现字符串拆分
    • Mysql select in 按id排序实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有