192.168.100.30:主IP
192.168.100.40:从IP
mysql主从复制原理:
MySQL主从复制其实是一个异步复制的过程,要实现首先需要在master上开启bin-log日志功能,整个过程需要开启3个线程,分别是master开IO线程,slave开启IO线程和SQL线程。
1,在从服务器上执行slave start ,从服务器IO线程会通过授权用户连接master,并要求master从指定的文件和位置之后发送bin-log日志内容。
2,master服务器接收到来自slave服务器的IO线程的请求后,master服务器上的IO线程根据slave服务器发送指定bin-log日志之后的内容,然后返回给slave端的IO线程。(返回的信息除了bin-log日志内容外,还有本次返回日志内容后在master服务器端的新的bin-log文件名以及bin-log中的下一个指定更新位置)
3,slave的IO线程收到信息后,将接收到的日志内容依次添加到slave端的relay-log文件的最末端,并将读取到master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的那个位置往后的日志内容,发给我”
4,slave的SQL线程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在master端真实执行时候的那些可执行的内容,并在自身执行。
1.修改主MySQL和备份MySQL的id号
vim /etc/my.cnf
主:改为一。
从:改为2。
2.进入主MySQL。
[root@Centos ~]# mysql -u root -p
mysql> grant replication slave on *.* to 'tongbu'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
3.进入从MySQL。
[root@Centos src]# mysql -u root -p
mysql> change master to master_host='192.168.100.30',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=251;
Query OK, 0 rows affected (0.31 sec)
mysql> slave start
mysql> show slave status\G #查看主从配置是否完成