Windows下MySQL的主从复制
首先需要的环境:我在本地安装了两个MySQL,分别是5.7和5.5的版本:安装结束后如下:
1、复制原理: 2、主数据库配置文件修改: 还有其他几个值可以配置: binlog-do-db=su #要同步的数据库名称,多个写多行,如果没配置,则所有都同步; binlog_format=mixed #日志混合 3、主数据库启动过程: 4、连接主数据库: 启动成功后,连接数据库命令:mysql -u root -p,如下: 这个命令如果环境变量没有配置的话,这个命令是没法用的。 5、为从数据库创建用户: 为从服务器创建用户,即授权给从数据库,命令为:grant replication slave on . to ‘myslave‘@‘%‘ identified by ‘123456‘; %表示除了本地可以访问,还可以远程访问,localhost则只能本地访问。 replication slave表示只授予slave的权限,也可以加select,insert等等。 授权以后查看主数据库状态,如下: 记录下 File及 Position 的值,在后面进行从服务器操作的时候需要用到。 6、从数据库配置: 也可以加其他的: relay_log = mysql-relay-bin // 中继日志 log_slave_updates = 1 // slave将复制事件写进自己的二进制日志 7、从数据库执行过程: 然后启动Slave同步进程,主从同步检查,如下: 当这两个值都为YES的时候,表示状态正常。 现在出现的状态为不正常的,提示的原因如下: 说是server-id相同,但是我配置的分别为1和2。则解决办法可以试试以下: a、MySQL的一个配置文件auto.cnf里面记录了mysql服务器的uuid,server_uuid:服务器身份ID。在第一次启动Mysql时,会自动生成一个server_uuid并写入到数据目录下auto.cnf文件里,改一下这个值试试看。 b、找一找是不是存在其他的my.ini文件,找到后删除; c、通过命令来设置server-id=2: mysql> set global server_id=2; #此处的数值和my.cnf里设置的一样就行 mysql> slave start; 修改成功后进行测试: 然后从数据库的这张表会自动加入这条数据,这样就算完成了数据库的主从复制了。 最后来介绍一下MySQL主从复制的过程:a、主节点启用这个bin二进制日志(log-bin);b、从节点开启一个线程(I/O Thread),连接主节点上的用户,读取这个日志文件中的事件;c、主节点启动一个线程(dump Thread),检查自己二进制日志中的事件,跟对方请求的位置对比,如果不带请求位置参数,则主节点就会从第一个日志文件中的第一个事件一个一个发送给从节点;d、从节点接收到主节点发送过来的数据把它放置到中继日志(Relay log)文件中。并记录该次请求到主节点的具哪个二进制日志文件的哪个位置;e、从节点启动另外一个线程(sql Thread ),把replaylog中的事件读取出来,并在本地再执行一次。解释:I/O Thread:从Master请求二进制日志事件,并保存于中继日志中;Sql Thread:从中继日志中读取日志事件,在本地完成重放;Dump Thread:为每个Slave的I/O Thread启动一个dump线程,用于向从节点发送二进制事件;注意:如果从节点需要作为其他节点的主节点时,需要开启二进制日志文件的(log-bin)。这种情况叫做级联复制。如果只是作为从节点,则不需要创建二进制文件。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 默认Microsoft Windows Update Server
- windows 2008 R2 出现身份验证错误。 无法连接到本地安全机
- Windows安装程序 – 使用Visual Studio安装项目设置Install
- .net – 是否可以将dll转换为源代码?
- windows-7 – 在IE8中调试UI问题(在Windows 7身份验证混乱中
- windows、Linux 开放端口
- windows-server-2012 – 如何在Windows Server 2012中修改I
- windows-8 – Windows 8.1应用程序内搜索控制和搜索窗格(搜
- windows – 我应该用哪个Java版本运行Jenkins?
- 窗口 – 如何保护软件免受系统日期更改?