天天看点

MySQL主从配置及主从恢复

环境说明

主:centos7 192.168.11.128

从:centos7 192.168.11.129

MySQL5.7

配置主

1、 vi /etc/my.cnf

    server-id=128

    log_bin=master128

2、 重启

    service mysqld restart

    service mysqld status

    ls -lt /var/lib/mysql

3、 新建一个数据库为试验做准备

    mysql> create database zctest;

    mysqldump -uroot -p123456 zctest > /tmp/zctest.sql #备份

    scp /tmp/zctest.sql 'root'@'192.168.11.129':/tmp/ #将备份文件传给从库服务器

4、 创建同步账号

    #只给复制权限,对所有库所有表,ip为从服务器的ip,账号为root,密码:123456

    mysql> grant replication slave on *.* to 'root'@'192.168.11.129' identified by '123456';

    mysql> flush tables with read lock; #先进行锁表,等主从服务器数据保持一致,再解锁表

    mysql> show master status; #需要记录file、position位置

配置从

1、 vi /etc/my.cnf

    server-id=129 #必须得和主服务器上的server-id不一样

2、 重启

    service mysqld restart

    service mysqld status

3、 恢复数据库

    mysql -uroot -p123456 zctest < zctest.sql

4、 实现主从同步

    mysql> stop slave;

    #master_log_file、master_log_pos:主服务器上

    mysql> change master to master_host='192.168.11.128',master_user='root',master_password='123456',master_log_file='master128.000001',master_log_pos=615;

    mysql> start slave;

    mysql> show slave status\G 查看:

           Slave_IO_Running: Yes

           Slave_SQL_Running: Yes

5、 解锁主库的表(在主上操作)

    mysql> unlock tables;

主从恢复

1、 在master进行锁表

    mysql> flush tables with read lock;

2、 查看master 状态:

    show master status; #需要记录file、position位置

3、    停止从库的状态

    mysql> stop slave;

4、 将从库数据与主库数据同步(mysqldump、手动执行等方式)

    比如:

    mysqldump -uroot -p123456 zctest > /tmp/zctest.sql (master)

    scp zctest.sql [email protected]:/tmp/ (master)

    mysql -uroot -p123456 zctest < zctest.sql (slave)

5、 设置从库同步

    #master_log_file与master_log_pos 是主库show master status信息里的| File与Position

    mysql> change master to master_host='192.168.11.128',master_user='root',master_password='123456',master_log_file='master128.000001',master_log_pos=1875;

6、 重新开启从库同步

    mysql> start slave; 

    查看同步状态

    mysql> show slave status\G 查看:

        Slave_IO_Running: Yes

        Slave_SQL_Running: Yes、

7、 在master上解锁:

    mysql> unlock tables;

继续阅读