快速笔记02-MySQL主从复制原理半同步操作步骤及原理

==========================================================
一:MySQL主从复制规划

主库:(MySQL master) IP:10.0.0.52 PROT:3306从库1:(MySQL slave) IP:10.0.0.52 PORT:3307从库2:(MySQL slave) IP:10.0.0.52 PORT:3308

==========================================================
二:检查环境
(1)检查MySQL数据库多实例是否启动

netstat -lntup|grep 330tcp        0      0 0.0.0.0:3306         0.0.0.0:*     LISTEN      20434/mysqld        tcp        0      0 0.0.0.0:3307         0.0.0.0:*     LISTEN      15120/mysqld        tcp        0      0 0.0.0.0:3308         0.0.0.0:*     LISTEN      19578/mysqld

(2)开启MySQL主库的Binlog功能

 grep log-bin /data/3306/my.cnf

(3)设置server-id,此处ID不可以相同否则最后出现IO错误

 grep server-id /data/{3306,3307,3308}/my.cnf/data/3306/my.cnf:server-id = 1/data/3307/my.cnf:server-id = 3/data/3308/my.cnf:server-id = 8

==========================================================
三:因为从库现在还没有数据,或者数据不统一我们需要导入数据

wget ftp://10.0.0.1/backup-mysql-salt.tar.gztar xf backup-mysql-salt.tar.gzzcat /root/bak_2016-07-27.sql.gz|mysql -uroot -poldboy -S /data/3306/mysql.sockmysql -uroot -poldboy -S /data/3306/mysql.sockshow databases; #检查数据库是否导入select user,host from mysql.user;

==========================================================
四:主库上面的操作(3306)
(1)主库需要授权slave访问的用户rep

mysql -uroot -poldboy -S /data/3306/mysql.sock #登录第一个实例的MySQL数据库grant replication slave on *.* to 'rep'@'172.16.1.%' identified by 'oldboy123';flush privileges;show grants for rep@'172.16.1.%'; #查看用户的权限select user,host from mysql.user;

提示:replication slave 为mysql同步的必须权限,此处不要授权all权限
(2)锁表、查看binlog文件及位置点,主库导出全备,需要锁表(-x –master-date=2)

flush table with read lock; #锁表,窗口不能退出,退出失效show master status; #锁表后查看主库状态,临界点,将来恢复就从0004开始| mysql-bin.000004 |   600457 |              |                  |

(3)将MySQL主库的数据进行备份

mkdir /server/backup/ -pmysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -A -B --events|gzip >/server/backup/rep3307_bak$(date +%F).sql.gz #由于之前导入的数据库为全量的所以以前的密码为oldboy123ls -lrt /server/backup/

(4)解锁MySQL数据库的数据表,并查看msater的状态

unlock table; #解锁MySQL数据库的数据表show master status;

提示:如果解锁之后还是mysql-bin.000004说明是正确的,如果动了说明没有锁住表
提示:如果,mysqldump加了- f他就会更改刷新binlog

五:从库1上面的操作(3307)
提示:一定要确保从库的server_id与从库的不同

grep  server-id /数据/{3306、3307}/my.cnf :/数据/3306/my . cnf中所做server-id =,: 1/数据/3307/my . cnf中所做server-id =,

3(1)把主库的备份数据导入到从库

cd /服务器/备份/gzip  -d  rep3307_bak2016 - 07 - 29. - sql.gzmysql  -uroot  -poldboy  -S /数据/3307/mysql.sock  & lt; rep3307_bak2016-07-29。null

快速笔记02-MySQL主从复制原理半同步操作步骤及原理