MySQL数据库主从同步设置中主服务器二进制日志无法开启的解决办法
来源:互联网 发布:linux剪辑软件 编辑:程序博客网 时间:2024/05/17 14:27
最近正在学习使用MySQL数据库,欲实现数据库数据的同步,在设置主服务器和从服务器的过程中出现很多问题。看了网上很多教程,发现大多教程里面有一个问题,也不知道是我的数据库版本导致的问题还是使用mysql5.6的人都有这个问题。 以下是我的操作:
1、操作条件配置
主服务器:(1)系统:windows 7 (2)数据库:mysql 5.6
从服务器(虚拟机):(1)windows 7 (2)数据库:mysql 5.6
2、具体操作(如果有navicat会很简单)
(1)在主服务器上建立需同步的数据库
create database test;
(2)在该数据库下建立两张表:
CREATE TABLE `backup_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) CHARACTER SET utf8 NOT NULL, `sex` varchar(2) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
CREATE TABLE `user` ( `User_ID` int(50) NOT NULL, `User_Name` char(100) DEFAULT NULL, PRIMARY KEY (`User_ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(3)在从服务器上建立相同的数据库和表;(4)由于同步是基于日志的,所以要确保主服务器二进制日志已开启。
在主服务器mysql执行查询:show variables like '%log_bin%'; 可以看到log-bin是关闭的
(5)问题就出在这一步,大多数教程都是提示 “ 在主服务器上mysql安装目录下有个配置文件my.ini,在[mysqld]下更改log-bin=mysql-bin ” ,但我的mysql5.6的安装根目录下只有my-default.ini,于是我误以为就是在这个文件里面更改,但是更改之后,无论如何重启服务,查询log-bin始终是OFF,于是在找了很多教程之后,发现了mysql的另一个数据存储的路径,我尝试的找到了mysql的另一个保存数据的目录C:\ProgramData\MySQL,找到了my.ini,于是在这个文件里进行了更改:
(6)修改之后,重启服务器,在进行查询show variables like '%log_bin%'; 终于解决了这个烦了我一天的问题:
(7)同理,从服务器的server-id设置成2,且同样要在目录 C:\ProgramData\MySQL中找到my.ini文件打开进行设置 (ProgramData文件夹可能是隐藏的,直接输入地址栏就能找到),后面的设置可直接写在server-id后面,同样是在该目录下的my.ini中
replicate-do-db=test #要同步的数据库
replicate-do-table=test.bakeup_table #要同步的表,改成自己的数据库和表
replicate-do-table=test.user #要同步的第二个表
(8)然后在主服务器数据库上创建一个用于同步数据的用户,使用navicat很简单,用户名和密码自行设置,主机设置成%,然后执行grant replication slave on *.* to 'testuser'@'%';
(9)设置好后,在navicat的命令行中执行 show master status; 显示出正确结果,终于那个之前一直是 “ empty set ” 的问题解决了,至此主机上的都设置好了。
3.从数据库中的设置
(1)配置寻找主服务器如下图,然后启动从服务器,输入start slave;即可
CHANGE MASTER TO
MASTER_HOST='主服务器ip',
MASTER_USER='testuser', #新建的用户
MASTER_PASSWORD='yanwei', #我的用户密码
MASTER_LOG_FILE='mysql-bin.000002', #上图查询出的同步文件
MASTER_LOG_POS=120; #上图查询出的同步点(即:position下的值)
(2)检查配置结果,在从服务器上输入:show slave status;可以看到从服务器的状态,已经开始准备接受数据了。
至此,主从复制的所有设置都已设置完成。接下来就是测试数据的同步效果了。以上是我解决这个问题的一点想法,如有错误还望各位大神们海涵并指出~~~
- MySQL数据库主从同步设置中主服务器二进制日志无法开启的解决办法
- 服务器mysql数据库主从同步
- MySQL数据库设置主从同步
- MySQL数据库设置主从同步
- MySQL数据库设置主从同步
- MySQL数据库设置主从同步
- MySQL数据库设置主从同步
- MySQL数据库设置主从同步
- mysql主从同步,设置同步部分数据库
- linux服务器下mysql设置主从同步的过程
- linux服务器下mysql设置主从同步的过程
- linux服务器下mysql设置主从同步的过程
- Mysql的主从同步设置
- MySQL主从服务器复制同步设置
- mysql数据库的主从同步
- mysql数据库的主从同步
- MysQL数据库的主从同步
- mysql数据库主从服务器数据同步
- 【Leetcode】520. Detect Capital
- 架构以及我理解中架构的本质
- 为什么axios请求接口会发起两次请求
- 指针详细分析
- springMVC子容器使用spring父容器配置文件资源
- MySQL数据库主从同步设置中主服务器二进制日志无法开启的解决办法
- Android学习
- 【WPF】ComboBoxItem的禁用
- JavaScript 垃圾回收
- java到底是值传递还是引用传递?
- MySQL选择标识符
- springmvc 参数绑定
- 【c++基础】8.类和对象——类的实现1
- 第一章 并发编程的挑战