步骤:

1. 主库开启bin-log
2. 创建允许从库同步的账号

CREATE USER 'tongbu'@'%' IDENTIFIED BY 'tongbu123456';
update mysql.user set password=password('tongbu123456') where user='tongbu';
给用户添加数据库权限
grant all privileges on huijiayou.* to 'backup'@'%';

3.验证是否开启成功

1) 查看bin-log 日志
2) mysql -uroot -p123456 -S /tmp/mysql.sock -e "show variables like 'log_bin'"

4.备份数据 (

flush table with read lock  加上读锁,不让数据再写进来

mysqldump -uroot -p123456 -S /tmp/mysql.sock -A -B --events|gzip > /home/wwwroot/logs/beifen.sql

mysqldump -uroot -p123456 -S /tmp/mysql.sock -A -B --single-transaction --master-data=1> /home/wwwroot/logs/beifen2.sql

unlock tables;

5. 备份数据写入从库中

     mysqldump -uroot -p123456 -S /tmp/mysql.sock  <  /home/wwwroot/logs/beifen.sql      

  ]

6. 用户赋权限

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'10.10.10.%' IDENTIFIED BY '123456'; //,RELOAD,SUPER

7 从库执行语句

CHANGE MASTER TO 
MASTER_HOST='*******', 
MASTER_PORT=3306,
MASTER_USER='backup', 
MASTER_PASSWORD='******', 
MASTER_LOG_FILE='mysql-bin.000014',
MASTER_LOG_POS=0;

// --master-data=1  可以忽略 位置点

备注:内容存在master.info 中

8 验证成功与否
start slave;
show slave status\G 
Slave_IO_Running: Yes 
Slave_SQL_Running: No 
show master status;

9. log文件

master-bin  

relay-log   sql线程处理

master-info   io 线程处理


10.常见错误

ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

stop slave;

reset slave;

执行授权

slave start;


跳过语句错误

mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; //
Last_SQL_Errno: 1050

mysql> slave start;


10,主服务器配置
[mysqld]
log-bin=/www/db_logs/mysql-bin.log
server-id=1
binlog-do-db=ybk_db_1  #备份
binlog-ignore-db=mysql #不备份
binlog-ignore-db=ybk_db
binlog-ignore-db=ybk_db_2
binlog-ignore-db=ybk_db_bbs #不复制某个库

11,从服务器配置
server-id 
      = 2
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =ybk_db_1 #只复制某个库
relay-log=/www/db_logs/relay-bin