[mysqld] #用于同步的每台机器server-id都不能相同 server-id = 10 log-bin = /data/mysql56/data/mysql-bin
2、重启主库
> service mysqld restart
3、登陆主库,查看server-id
> mysql -uroot -p > show variables like 'server_id';
4、主库上建立用于从库复制的账号
> grant replication slave on *.* to "rep"@"%" identified by "123456"; > flush privileges; > select user,host from mysql.user; > show grants for rep@"%";
5、对主库数据库锁表只读(当前窗口不要关掉)
> flush table with read lock;
查看主库状态
> show master status;
6、备份主库所有数据文件
> mysqldump -uroot -p -A -B | gzip > /data/mysql_bak.$(date +%F).sql.gz
7、备份完主库数据后,解锁
> unlock tables;
8、把主库导出的数据迁移到从库
(2)、在slave从库上
1、设置server-id值并关闭binlog功能
①有两种情况下需打开binlog
②级联同步A->B->C中间的B,就要开启binlog
③在从库做数据库备份,必须要有全备和binlog日志才是完整备份。
> vi /mysql-instance/3308/my.cnf [mysqld] server-id = 11 relay-log = /mysql-instance/3308/relay-bin relay-log-info-file = /mysql-instance/3308/relay-log.info
2、重启从库
> /mysql-instance/3308/mysql restart
3、登陆从库检查参数
> mysql -uroot -p -S /mysql-instance/3308/mysql.sock > show variables like 'log_bin'; > show variables like 'server_id';
4、把主库mysqldump导出的数据恢复到从库
> gzip -d /data/mysql_bak.2017-01-15.sql.gz
把主库数据还原到从库
> mysql -uroot -p -S /mysql-instance/3308/mysql.sock < /data/mysql_bak.2017-01-15.sql
5、登录从库,配置复制参数
CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=3306, MASTER_USER='rep', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=396;
注意上面的MASTER_LOG_FILE和MASTER_LOG_POS是在主库中用show master status;查看的信息。
查看master.info文件
> cat /mysql-instance/3308/data/master.info
6、启动从库同步开关,测试主从复制情况
> mysql -uroot -p -S /mysql-instance/3308/mysql.sock -e "start slave;" > mysql -uroot -p -S /mysql-instance/3308/mysql.sock -e "show slave statusG;" > mysql -uroot -p -S /mysql-instance/3308/mysql.sock -e "show slave statusG" | egrep "IO_Running|SQL_Running|_Behind_Master"








