Mysql高级优化知识笔记--主从复制

1.复制的基本原理

slave会从master读取binlog来进行数据同步
三步骤+原理图:
(1)master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events
(2)slave将master的binary log events拷贝到它的中继日志(relay log)
(3)slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的.

在这里插入图片描述

2.复制的基本原则

(1)每个slave只有一个master
(2)每个slave只能有一个唯一的服务器ID
(3)每个master可以有多个salve

3.复制的最大问题

延时

4.一主一从常见配置

  • 主机修改my.ini配置文件
(1)[必须]主服务器唯一ID
	server-id=1
(2)[必须]启用二进制日志
	log-bin=自己本地的路径/data/mysqlbin
	log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin
(3)[可选]启用错误日志
	log-err=自己本地的路径/data/mysqlerr
	log-err=D:/devSoft/MySQLServer5.5/data/mysqlerr
(4)[可选]根目录
	basedir="自己本地路径"
	basedir="D:/devSoft/MySQLServer5.5/"
(5)[可选]临时目录
	tmpdir="自己本地路径"
	tmpdir="D:/devSoft/MySQLServer5.5/"
(6)[可选]数据目录
	datadir="自己本地路径/Data/"
	datadir="D:/devSoft/MySQLServer5.5/Data/"
(7)主机,读写都可以 
	read-only=0
(8)[可选]设置不要复制的数据库
	binlog-ignore-db=mysql
(9)[可选]设置需要复制的数据库
	binlog-do-db=需要复制的主数据库名字

  • 从机修改my.cnf配置文件
(1)[必须]从服务器唯一ID
(2)[可选]启用二进制日志
  • 因修改过配置文件,请主机+从机都重启后台mysql服务
  • 主机从机都关闭防火墙
windows手动关闭
关闭虚拟机linux防火墙    service iptables stop
  • 在Windows主机上建立帐户并授权slave
(1)主机配置连接从机用户
	GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'从机器数据库IP' IDENTIFIED BY '123456';
(2)刷新权限
	flush privileges;
(3)查询master的状态,记录下File和Position的值
	show master status;
(4)执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
  • 在Linux从机上配置需要复制的主机
(1)配置连接的主机
	CHANGE MASTER TO MASTER_HOST='主机IP',MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position数字;
(2)启动从服务器复制功能
	start slave;
(3)查看是否成功
	show slave status\G
	下面两个参数都是Yes,则说明主从配置成功!
	Slave_IO_Running: Yes
	Slave_SQL_Running: Yes
  • 如何停止从服务复制功能
停止复制:
	stop slave;
发布了18 篇原创文章 · 获赞 2 · 访问量 659

猜你喜欢

转载自blog.csdn.net/qq_34699995/article/details/99243819