1.一个服务器程序充当主服务器,多个服务器充当从服务器.mysql
2/主服务器将更新写入二进制日志文件,从服务器等待接受主服务器的更新.linux
3.为了实现主服务器写数据,从服务器读数据.sql
4.在备份过程当中,不会干扰主服务器,主服务器能够持续处理更新数据库
yum install mysql-server -y vim
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服务器
建立slave账户,并给予权限ide
mysql> grant replication slave on *.* to miao@'172.25.88.%' identified by 'westos'
保证同步前主从数据库具备相同结构工具
show slave status\G ;spa
查看slave状态,出现两个YES,表示从库的 I/O,Slave_SQL 线程都正确开启.代表数据库正在同步!!!!
IO: 防火墙,权限,selinux
SQL:////////////////////////////
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');
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;
说明
mysqlbinlog mysql-bin.000001
用mysqlbinlog 工具来显示记录的二进制结果,而后导入到文本文件,为了之后的恢复。
server-id=3