mysql主从复制笔记
一:测试环境介绍
主从复制测试环境是ubuntu+mysql5.7,master服务器ip是192.168.71.135,slave服务器ip是192.168.71.137,ubuntu环境是从一台已配置好环境的服务器克隆的。
二:mysql主从配置
1:) master配置
a 在mysql 目录下(/etc/mysql),mysql.cnf文件中添加server-id和Log-bin.主从服务器的server-id不能相同
log-bin=mysql-bin
server-id=100

设置好后,使用show master status;查询一下状态

设置从服务器连接的账号,密码等
配置连接用户
GRANT REPLICATION SLAVE ON *.* to 'mysql账号'@'%' identified by '密码';这里是测试,没有指定从服务器的ip.如需指定ip,执行下面一个指令
GRANT REPLICATION SLAVE ON *.* to 'mysql账号'@'192.168.71.137' identified by '密码';
配置好后记录重启mysql.
2:)配置从数据库
2.1 Slave的配置与master类似(配置文件名称:mysql.cnf,在/etc/mysql目录,你的环境可能不是该目录),你配置完成后仍然需要重启slave的MySQL。配置参数如下:
log_bin= mysql-bin
server_id= 110
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)。
relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。
有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。
2.2 配置完成后重新启动mysql
/etc/init.d/mysql restart
2.3 执行同步SQL语句
mysql> change master to
master_host=’192.168.71.135’,
master_user=’syncuser’,
master_password=’123456’,
master_log_file=’mysql-bin.000001’, -- 该值来源于主库,执行show master status 后的File字段
master_log_pos=443;-- 该值来源于主库,执行show master status 后的position字段
2.4 查询从库状态
start slave;
show slave status\G

三:主库SQL测试
主库创建数据库:
Create database copytest;
创建表:
Create table tu (uid bigint primary key);
添加一条数据
Insert into tu (1);
现在我们来看从数据库:

从图中可以看到,主库的数据,已经复制到了从库。
五:总结问题
1:执行同步语句,出错
mysql> change master to
master_host=’192.168.71.135’,
master_user=’syncuser’,
master_password=’123456’,
master_log_file=’mysql-bin.000001’,
master_log_pos=443;
出现如下错误:
Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
解决办法:
删除slave的mysql库的表
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;
重新启动slave数据库:/etc/init.d/mysql restart;
2:配置好的,slave执行show slave status\G语句后,slave_io_running: no显示no
slave_io_running: yes才能正常复制,为no时无法复制,可以看到有一个错误,
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
意思是master和slave的uuid重复了,用show variables like '%server_uuid%'查询出uuid,明显两台机子的uuid一样,所以出现了上面的错误.

因为主从的utunbu环境是克隆的,所以出现了这个问题,我们进入mysql的data 目录,修改auto.cnf文件,通过show variables like '%datadir%'查询出data目录。

用vim auto.cnf修改auto.cnf文件即可.
mysql主从复制笔记的更多相关文章
- Linux 笔记 - 第二十三章 MySQL 主从复制配置
一.前言 MySQL Replication,也被称为主从复制.AB 复制.简单来说就是 A 和 B 两台服务器做主从后,在 A 服务器上写入数据,B 服务器上也会跟着写入输入,两者之间的数据是实时同 ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置
文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...
- Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记
GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...
- MySQL主从复制与读写分离
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...
- MySQL主从复制与读写分离 --非原创
原文出处:http://www.cnblogs.com/luckcs/articles/2543607.html MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 ...
- MySQL入门笔记
MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: · rpm包形式 · 通用二进制 ...
- [转]MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
转自:http://heylinux.com/archives/1004.html Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单 ...
- MySQL主从复制与读写分离(非原创,谢绝膜拜)
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...
随机推荐
- LeetCode 18. 4Sum (四数之和)
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...
- 对foreach循环的思考
阿里java开发手册已经发表,很多都值得认真研究思考,看到零度的思考题,没忍住研究了一下. 零度的思考:https://mp.weixin.qq.com/s/dDR21k30s6ZVfDvl8BVQm ...
- Spring框架学习之依赖注入
Spring框架从2004年发布的第一个版本以来,如今已经迭代到5.x,逐渐成为JavaEE开发中必不可少的框架之一,也有人称它为Java下的第一开源平台.单从Spring的本身来说,它贯穿着整个表现 ...
- containing block和BFC
1.Box Box 是 CSS 布局的对象和基本单位,元素的类型和 display 属性,决定了这个 Box 的类型.比较常见的有: block-level box:display 属性为 block ...
- HDU1754 I hate it(线段树 单点修改)
好久没打线段树,来一道练练手,但说句实话,I really hate it!!!! 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管 ...
- JDBC(MySQL)一周学习总结(一)
一周过去了,我在这分享一下这一周来学习 JDBC 的知识,同时也希望可以帮到别人! 首先我们从获取 JDBC 连接开始 Driver(每个驱动程序类必须实现的接口) 获取数据库连接需要配置数据库连接信 ...
- 解决打开MATLAB时出现“Waring:could not read file classpath.txt”,等问题
估计刚安装好的matlab是不会出现这个问题的,出现问题肯定是在某一次用360或者电脑管家清理垃圾之后才会出现这个问题. 首先声明我的matlab版本是matlab R2014a,下载链接:(额,网盘 ...
- Flex 基础语法(二)
1.flex -direction 属性 含义 row(默认值) 主轴为水平方向,起点在左端. row-reverse 主轴为水平方向,起点在右边. column 主轴为垂直方向,起点在上沿. col ...
- selenium元素定位
在网页自动化测试中,我们要让程序自动模拟我们的点击.输入.悬浮.拖动等操作,完成我们的测试用例组. 输入.点击.打开这样的动词,已经包含在了selenium的方法中,可以直接调用(当然你也可以自己写) ...
- 【深度学习笔记】(二)基于MNIST数据集的神经网络实验
一.介绍 MNIST(Mixed National Institute of Standards and Technology database)是网上著名的公开数据库之一,是一个入门级的计算机视觉数 ...