如果使用的是mysql5.7版本的需要注意
mysql5.7增加了server-uuid值,默认情况下载auto.cnf文件中,如果是使用的镜像的方式安装,可能大家的uuid一样 ,所以需要把auto.cnf文件删除掉。mysql重启后会自动重新生成uuid的值,这样就可以保证不同服务器上的mysql实例的uuid的值是不一样的
如果server-uuid的值相同,主从复制会出现问题
以上我们就完成了主从复制的配置,接下来我们要在主服务器上建立复制账号
3. 在mysql主服务器上建立mysql复制账号 mysql> create user 'dba_repl'@'192.168.2.%' identified by '123456'; mysql> grant replication slave on *.* to 'dba_repl'@'192.168.2.%';建立好复制账号以后
4. 通过mysql主服务器上的全备初始化从服务器上数据进行全备
[root@localhost data]# cd /data/db_backup/ [root@localhost db_backup]# mysqldump -uroot -p --master-data=1 --single-transaction --routines --triggers --events --all-databases > all.sql Enter password:将其拷贝到从服务器上
[root@localhost db_backup]# scp all.sql root@192.168.2.101:/root在从服务器上恢复备份进行初始化
[root@Node2 ~]# mysql -uroot -p < all.sql初始化完成后,准备
5. 从服务器进行基于日志点的复制链路的配置 mysql> change master to master_host='192.168.2.100', -> master_user='dba_repl', -> master_password='123456', ->MASTER_LOG_FILE='mysql-bin.000017',MASTER_LOG_POS=663;MASTER_LOG_FILE和MASTER_LOG_POS的值从全备文件中的CHANGE MASTER中获取
以上复制链路的配置完成
启动slave
mysql> start slave;检查是否启动成功状态
mysql> show slave status \G;显示
Relay_Master_Log_File: mysql-bin.000017 Slave_IO_Running:Yes Slave_SQL_Running: Yes说明启动成功了,可以在主服务器上插入数据,在从服务上查看数据是否同步过来了