主从
MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。
MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
主从过程大致有3个步骤:
1)主将更改操作记录到binlog里
2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里中继日志
3)从根据relaylog里面的sql语句按顺序执行
主从节点的server——id不能相同 !!!!
使用场景
1、数据的备份。
单纯的读。当主服务器损坏,从服务器可以顶替
2、主从同时被使用
当主的服务器压力过大,从节点也被用来读数据。
配置
主节点
# 修改配置文件 /etc/my.cnf 确定有log_bin 和server_id[root@server ~]# vim /etc/my.cnflog_bin=lzserver_id =38#可更改你自己的名字,server——id为你ip地址的最后一个位[root@server ~]# service mysqld restartShutting down MySQL.. SUCCESS!Starting MySQL. SUCCESS!# 可以看到多出log_bin名为开头的两个文件,lz.000001、lz.indexmysqladmin -uroot password '000000'创建mysql用户和密码grant replication slave on *.* to 'repl'@192.168.100.39 identified by '000000';#ip地址为你自己从节点的ip地址# 刷新权限mysql> flush privileges;# 查看server节点状态mysql> show master status ;+------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------+----------+--------------+------------------+-------------------+| lz.000001 | 410 | | | |+------------+----------+--------------+------------------+-------------------+
从节点
# 从节点修改配置文件,确保有server_id 这个字段,# 字段id不要一样,一般以ip最后一位结尾[root@client ~]# vim /etc/my.cnfserver_id = 39mysql> stop slave;# 创建连接, 主节点信息,bin_log文件名及大小mysql> change master to master_host='192.168.100.38',master_user='repl',master_password='000000',master_log_file='lz.000001',master_log_pos=410;#修改为你主节点的ip地址,master_password='000000',master_log_file='lz.000001',master_log_pos=410;更改为你自己的数据库密码和上面主节点所查看的File和Positionmysql> start slave;mysql> show slave status\G;
测试
# 主节点创建一个库,测试操作在这个库进行mysql> create database lz;Query OK, 1 row affected (0.00 sec)# 从节点查看同步信息mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test || lz |+--------------------+5 rows in set (0.00 sec)# 000001文件大小为主节点操作命令组成# 可以通过bin_log文件恢复数据
