博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux centosVMware MySQL主从介绍、准备工作、配置主、配置从、测试主从同步
阅读量:5122 次
发布时间:2019-06-13

本文共 3291 字,大约阅读时间需要 10 分钟。

一、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;

 

转载于:https://www.cnblogs.com/davery/p/8992473.html

你可能感兴趣的文章
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>