mysql的经典主从复制

1.一个服务器程序充当主服务器,多个服务器充当从服务器.

2/主服务器将更新写入二进制日志文件,从服务器等待接受主服务器的更新.

3.为了实现主服务器写数据,从服务器读数据.

4.在备份过程中,不会干扰主服务器,主服务器可以持续处理更新



server33

yum install mysql-server -y 

vim /etc/my.cnf

      8 server-id=3              必须为 1 到 232–1 之间的一个正整数值
      9 
     10 log-bin=mysql-bin        启动二进制日志系统
     11 binlog-do-db=test        二进制需要同步的数据库名,要是还有要同步的数据库,就另起一行
     12 binlog-ignore-db=mysql   禁止同步  数据库

/etc/init.d/mysqld start


wKiom1jWd22ynltFAAAtBCMIn3c879.png



创建slave帐户,并给予权限

mysql> grant replication slave on *.* to miao@'172.25.88.%' identified by 'westos'


保证同步前主从数据库具有相同结构


wKioL1jWd3HTmqp-AAAnhInnsA0006.png



show slave status\G ;

查看slave状态,出现两个YES,表示从库的 I/O,Slave_SQL 线程都正确开启.表明数据库正在同步!!!!

IO:    防火墙,权限,selinux

SQL:


wKioL1jWd2-RlSpNAACWg21ru-M684.png

mysql> use test;
Database changed
mysql> create table usertb (
    -> username varchar(15) not null,
    -> password varchar(25) not null
    -> );

mysql> insert into usertb values ('user1','123');
mysql> insert into usertb values ('user2','456');

wKiom1jWd2-wwd8GAABkD2nQfd4141.png


wKioL1jWd3CzpidBAABbxJHjORc005.png

server44:

yum install mysql-server -y vim /etc/my.cnf

      8 server-id=4
                      //从服务器 ID 号,不要和主 ID 相同,如果设置多个从服务器,每个从服务器必须有一个唯一的 server-id 值
     10 read-only    //可以不写,但是为了数据库安全,还是写只读吧.

/etc/init.d/mysqld start

mysql> change master to master_host='172.25.88.33',master_user='miao' , master_password='westos',master_log_file='mysql-bin.000003',master_log_pos=256;
mysql> show slave status\G;
mysql> show tables;
mysql> select * from usertb;

wKiom1jWd3CTBlZZAABrLEb75R8661.png



说明

mysqlbinlog mysql-bin.000001     

mysqlbinlog 工具来显示记录的二进制结果,然后导入到文本文件,为了以后的恢复。


wKioL1jWd26g-NTiAADfDnXuPLk869.png

server-id=3


wKiom1jWd3HwHgrgAABLbhrSXOQ731.png