Linux centosVMware MySQL主从介绍、准备工作、配置主、配置从、测试主从同步
一、MySQL主从介绍
MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。 主从过程大致有3个步骤
1)主将更改操作记录到binlog里
2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里
3)从根据relaylog里面的sql语句按顺序执行
主上有一个log dump线程,用来和从的I/O线程传递binlog
从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地
MySQL主从原理图

三、配置主
安装mysql
修改vi /etc/my.cnf,增加server- id = 101和log_bin = davery1

报错,需要把 /data/mysql 和/usr/local/mysql 的数组数主都改一下

cd /usr/local/mysql
chowen -R mysql.mysql .


chown -R mysql.mysql /data/mysql

修改完配置文件后,启动或者重启mysqld服务
/etc/init.d/mysqld restart

cd /data/mysql 这时目录里边会生成很多新的文件,index文件必须一定要有在能完成主从配置

测试
把zrlog备份到 /tmp/zrlog.sql

创建一个新的库test2,并把/tmp/zrlog.sql这个库回复到test2,后边参考的库就是test2
[root@davery mysql]# /usr/local/mysql/bin/mysql -uroot -pmimA123 -e "create database test2"
/usr/local/mysql/bin/mysql -uroot -pmimA123 test2 < /tmp/zrlog.sql

查看两个库test2 zrlog 大小一致

创建用作同步数据的用户,先登陆mysql
[root@davery mysql]# /usr/local/mysql/bin/mysql -uroot -pmimA123
mysql> grant replication slave on *.* to 'repl'@'192.168.1.106' identified by 'mimA123'; 指定从ip,以密码登陆
mysql> flush tables with read lock;把表锁定

show master status;使用到如下两个
davery1.000002
10557

然后退出
数据备份,这时候主就配置好了

四、配置从
安装mysql
查看my.cnf,配置server-id = 106,要求和主不一样

修改完配置文件后,启动或者重启mysqld服务
[root@davery01 mysql]# /etc/init.d/mysqld restart

把主上test2库同步到从上
scp 192.168.1.101:/tmp/*.sql /tmp/

可以先创建test2库,然后把主上的/tmp/mysql.sql拷贝到从上,然后导入test2库,为防止错乱,两边都需要有同样的数据库名。
/usr/local/mysql/bin/mysql -uroot
mysql> create database davery;
mysql> create database zrlog;
mysql> create database test2;

可以看到数据已经一致了
从备份原/tmp/*.sql 还原到对应的库里边
[root@davery01 ~]# /usr/local/mysql/bin/mysql -uroot zrlog < /tmp/zrlog.sql
[root@davery01 ~]#
[root@davery01 ~]# /usr/local/mysql/bin/mysql -uroot test2 < /tmp/zrlog.sql
[root@davery01 ~]#
[root@davery01 ~]# /usr/local/mysql/bin/mysql -uroot mysql < /tmp/my2.sql
[root@davery01 ~]#
[root@davery01 ~]#
[root@davery01 ~]# ls /data/mysql

然后登陆从,并关闭从
stop slave;

mysql> change master to master_host='192.168.1.101', master_user='repl', master_password='mimA123', master_log_file=='davery1.000002', master_log_pos=10557;

start slave;

show slave status\G
出现如下内容说明主从配置成功啦!
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.101
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: davery1.000002
Read_Master_Log_Pos: 10557
Relay_Log_File: davery01-relay-bin.000002
Relay_Log_Pos: 281
Relay_Master_Log_File: davery1.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes 这两行说明主从在运行。

还要到主上执行 unlock tables 这一步也不能忘记

这时候主从配置就真的配置完成了
五、测试主从同步
从上执行mysql -uroot
show slave stauts\G
看是否有
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
还需关注
Seconds_Behind_Master: 0 //为主从延迟的时间
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
配置参数
vim /etc/my.cnf
主服务器上 binlog-do-db= //仅同步指定的库
binlog-ignore-db= //忽略指定库
从服务器上
replicate_do_db=
replicate_ignore_db= 忽略库
replicate_do_table=
replicate_ignore_table= 忽略表
replicate_wild_do_table= //如aming.%, 支持通配符%
replicate_wild_ignore_table=
测试主从
主上
/usr/local/mysql/bin/mysql -uroot -pmimA123 登陆

查看都有哪些库

使用test2库
use test2;

select count(*) from user; 查看user表有多少行
可看到一行

truncate table ;
到从上
/usr/local/mysql/bin/mysql -uroot
select count(*) from user; 也是一行

主上继续drop table user;
Linux centosVMware MySQL主从介绍、准备工作、配置主、配置从、测试主从同步的更多相关文章
- MySQL主从介绍 准备工作 配置主 配置从 测试主从同步
配置主: • 安装mysql • 修改my.cnf,增加server-id=130和log_bin=xiaobo1 • 添加环境变量 Vim /root/.bash_profile PATH=$PAT ...
- Linux centosVMware 集群介绍、keepalived介绍、用keepalived配置高可用集群
一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat. ...
- Linux centosVMware LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍
一. LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫做php-fpm Nginx直接处理静态请求,动态请求会转发给php-fpm ...
- Linux 下 MySQL 的彻底卸载和安装配置字符集
前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了.之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子.下面的教程均是亲自实践. MySQL的彻底 ...
- Linux下MySQL的彻底卸载和安装配置字符集
前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了.之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子.下面的教程均是亲自实践. MySQL的彻底 ...
- 阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP) 并发调试之php-fpm配置及其与Nginx的通信
一.php-fpm的配置 1. php-fpm的配置,首先要关注进程数量. php-fpm的进程管理方式有三种:static.dynamic.ondemand. static方式,开启固定数量(pm. ...
- 阿里云Linux CentOS8.1 64位服务器安装LNMP(Linux+Nginx+MySQL+PHP) 并发调试之Nginx配置
搭建好LNMP环境之后,接着要考虑的就是整个系统的并发能力了. 一.Nginx的配置 Nginx有很好的并发能力.但是要想使它的并发能力能够施展出来,需要在初步安装好的Nginx上做一些配置.主要需要 ...
- linux+apache+mysql+php平台构建及环境配置
1.我使用的centos6.安装时已经选择安装apach.mysql,事实上在运行下列两行命令的时候又对其进行了更新.所以说装的时候能够不安装,免得浪费时间. yum install php-mysq ...
- linux下mysql安装、目录结构、配置
1.准备安装程序(官方网站下载) 服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rpm 客户端:MySQL-client-community-5.1.4 ...
随机推荐
- Spring boot+Thymeleaf传参跳转
$.ajax(): $.ajax({ type: "get", url:"/public/inform", async: true, data: detailJ ...
- 使用 vant 的 v-lazy 实现图片 vue 在移动端的懒加载
官方文档:https://youzan.github.io/vant/#/zh-CN/lazyload 引入 Lazyload 是 Vue 指令,使用前需要对指令进行注册 import Vue fro ...
- 批处理执行Testng
@echo off set LIB=项目的jar路径 set CLASSPATH=%LIB%\jar\commons-beanutils-.jar;%LIB%\jar\testng.jar;%LIB% ...
- ES5-bind用法及与以前的apply和call
当我们调用一个函数的时候,函数中的this一般是指向调用者的.但是我们其实可以在调用函数的时候,传入一个对象,让函数中的this指向我们传入的对象,而不是调用者本身. apply,call,bind都 ...
- 使用命令将单个java文件打包为jar
思路:先将java文件编译为class文件,然后再打包为jar 参考博文:https://www.cnblogs.com/sxdcgaq8080/p/8126770.html http://www.m ...
- 【Javaweb】Servlet的xml和注解配置
1.xml <%@ page language="java" contentType="text/html;" %> <!DOCTYPE ht ...
- Python第五十一天 python2升级为python3
Python第五十一天 python2升级为python3 公司使用的生产环境系统是centos7,所以这里以centos7系统为基础,讲解将python2升级为python3的方法 centos7 ...
- Write-Up-wakanda-1
关于 下载地址:点我 哔哩哔哩:哔哩哔哩 祖传开头 信息收集 这里用vm虚拟机可能有一点问题,因为官方的是用vbox虚拟机导出的镜像文件.所以这次使用vbox虚拟机. ➜ ~ ip a show de ...
- JavaWeb开发记录全过程--(1)环境配置
一. 开发工具:idea 理由:根据idea 如何连接服务器,可以直接在idea上连接服务器 安装:根据IntelliJ IDEA 下载安装(含注册码),进行非常规手段使用idea 二.分析问题: # ...
- PCSearch需要管理员权限,开机自启
1.添加Windows服务,并设为自动启动: 2.通过服务启动AutoStartSevice.exe,通过AutoStartSevice.exe运行AutoStart.bat,通过AutoStart. ...