如安在一台windows主机上完成MySQL的主从复制?【MySQL教程】,windows,实现,机上
作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:54评论:0
平常来说,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
#效劳器id
server_id = 2
#开启二进制日记(从效劳器不是必需要开启二进制日记)
log-bin=mysql-bin
保留退出,重启MySQL效劳。
衔接MySQL从效劳器:
mysql -uroot -p -P3307
设置复制的参数:
change master to master_host='127.0.0.1',master_user='user01',master_password='123456',master_port=3306,master_log_file='mysql-bin.000008',master_log_pos=498;
参数详解:
master_host: 主效劳器的IP
master_user: 主效劳器上新建立的用户名
master_password: 用户的暗码
master_port: 主效劳器的端口,假如不曾修正,默许即可。
master_log_file: 主效劳器二进制日记文件的称号,填写检察主效劳器的master状况时显现的File的值
master_log_pos: 日记的位置,填写检察主效劳器的master状况时显现的Position的值
启动从效劳器的slave复制功用:
start slave;
检察从效劳器的slave状况:
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 127.0.0.1
Master_User: user01
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000009
Read_Master_Log_Pos: 120
Relay_Log_File: hp-PC-relay-bin.000004
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
假如 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes,则申明主从复制的一切设置已胜利,即从效劳器已能够自动与主效劳器的数据库数据完成同步了。
今后,只需主效劳器的数据有更新(比方:在 test数据库中新建了一张表或许表中的数据发作了变化),从效劳器都邑自动与主效劳器保持一致。但假如有人锐意改变了从效劳器的数据,主效劳器中的数据并不会同步更新,除非我们把这两个MySQL效劳器设置为互为主从。
以上是我整理到的有关在window环境下设置mysql的主从架构,感兴趣的小伙伴们能够去尝试看看。
相干文章:
windows下装置mysql-5.7.21
MySQL 基础知识小结
navicat for mysql下载装置以及简朴的运用
以上就是怎样在一台windows主机上完成MySQL的主从复制?的细致内容,更多请关注ki4网别的相干文章!
相关推荐
- 基于PHP实现堆排序原理_php教程,PHP,实现,堆排序
- Java 开发用 Mac 还是 Windows ?_JAVA教程,windows,mac,java
- 学Python拿mac还是windows?_Python教程,python,mac,windows
- java如何实现页面跳转_JAVA教程,java,实现,页面,跳转
- java实现图片和文本同时提交到表单_JAVA教程,java,实现,图片,文本,提交,表单
- 通过实例讲解mysql如何实现定时任务_MySQL教程,mysql,实现,定时,任务
- php根据数组中某一字段来实现排序_php教程,php,数组,字段,实现,排序
- php实现上传图片功能_php教程,php,实现,上传,图片
- php实现队列的详细步骤_php教程,php,实现,队列,步骤
- java中实现多态的原理是什么_JAVA教程,java,实现,多态,原理
你 发表评论:
欢迎- MySQL教程排行
-
- 1mysql中key 、primary key 、unique key 与index区别详解_MySQL教程,mysql
- 2关于一道mysql查询面试题的思考解决过程_MySQL教程,mysql
- 3关于linux下mysql去除严格模式_MySQL教程,linux
- 4分离数据库和附加数据库的区别_MySQL教程,数据库
- 5如何修改mysql的默认时区_MySQL教程,mysql,时区
- 6利用mysql生成唯一序号_MySQL教程,mysql
- 7mysql数据库如何创建数据表_MySQL教程,mysql,数据表
- 8看看MySQL 5.6, 5.7, 8.0的新特性!_MySQL教程,MySQL
- 9mysql实现每个专业分数段统计人数_MySQL教程,mysql
- 最新文章
- 广而告之