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 ...
随机推荐
- java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 可能是我们运行的java版本过高导致
最近给自己写了个 SpringBoot 应用程序 顺便练练手,准备把程序过到 树莓派 上,结果登陆报错
- MyBatis-Plus学习笔记(2):代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity.Mapper.Mapper XML.Service.Control ...
- webjars使用
目的: Web前端使用了越来越多的JS或CSS,如jQuery,Backbone.js和Bootstrap.一般情况下,我们是将这些Web资源拷贝到Java Web项目的webapp相应目录下进行管理 ...
- VS中使用C的一些函数报错的问题
VS建议采用带_s的函数,如scanf_s.strcpy_s,但这些并不是标准C函数. 要想继续使用此函数,需要在源文件中添加以下指令就可以避免这个错误提示: #define _CRT_SECURE_ ...
- ubuntu mysql允许root用户远程登录
有两种方法: 一. 1.mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPT ...
- Qt应用程序的打包
Windows系统下打包: qt用realse版本编译然后打包发行 debug编译后的文件比realse版本大很多先在编译好的debug或者realse执行程序的目录下将执行该城西对应的所有dell文 ...
- LinkQueue(链队)
今天学习了队列,因为前面写了好几个链表实现的数据结构基本上都懂了,然后大致了解了一下队列的特点,便决定用自己的理解来实现一个,然后实现了. (2018-02-14 代码更新) Head file: # ...
- linux修改文件的权限和修改文件所有者和所属组
文件设定法:chmod [who] [+][-][=] [mode] who 文件所有者:u 文件所属组:g 其他:o 所有人:a + 添加权限 - 减少权限 = 覆盖原来权限 权 ...
- extractvalue报错注入
查看源码 $uagent = $_SERVER['HTTP_USER_AGENT']; ………… $uname = check_input($_POST['uname']); $passwd = ch ...
- 时间选择器UIDatePicker的使用
UIDatePicker的介绍 UIDatePicker这个类的对象让用户可以在多个车轮上选择日期和时间.iPhone手机上的‘时钟’应用程序中的时间与闹铃中便使用了该控件.使用这个控件时,如果你能配 ...