美文网首页
MySQL的主从复制

MySQL的主从复制

作者: 辛晓坤Vincent | 来源:发表于2018-07-13 17:31 被阅读0次

    5.5版本

    主库

    修改配置文件

    sed -i '/[mysqld]/a\server-id=1' /etc/my.cnf
    #在mysql的配置文件中的[mysqld]这一行后面追加一行server-id=1
    systemctl restart mariadb
    #重启服务
    

    给从库授权认证

    --授予来自<slavehost>的<username>所有库所有表的REPLICATION slave权限,设置密码为<密码>
    grant REPLICATION slave on *.* to <username>@<slavehost> identified by <密码>;
    flush privileges;
    

    全备份

    mysqldump -uroot -p -A > all1.sql
    mysqldump -uroot -p -A --master-data=2 > all2.sql
    sed -n '22p' all2.sql
    

    从库

    修改配置文件

    sed -i '/[mysqld]/a\server-id=2' /etc/my.cnf
    #在mysql的配置文件中的[mysqld]这一行后面追加一行server-id=2
    systemctl restart mariadb
    #重启服务
    

    初始化数据库,还原数据,使数据一致

    mv /var/lib/mysql* /tmp
    mysql -u -p < all.sql
    

    change master (I/O SQL)

    change master to master_host='ip',master_user='用户名',master_passoword='密码',master_log_file='',master_log_pos='<>';
    

    启动slave

    start slave
    

    查看slave状态

    show slave status\G;
    

    5.7版本

    主库

    sed -i '/[mysqld]/a\server-id=1\nlog-bin=/var/lib/mysql-log/mastera' /etc/my.cnf
    #在mysql的配置文件中的[mysqld]这一行后面追加两行server-id=1和log-bin=/var/lib/mysql-log/mastera
    

    从库

    配置有误

    --停止slave; 
    stop slave;
    --清空change master to的配置
    reset slave all;
    --重新配置change master to;
    --5.6
    change master to master_host='ip',master_user='用户名',master_passoword='密码',master_log_file='',master_log_pos='';
    --5.7
    change master to master_host='ip',master_user='用户名',master_passoword='密码',master_log_position=1;
    --启动slave
    start slave;
    

    有错请指出,不喜勿喷,不接受喷我小白,虽然这是事实,如果要喷请预约

    相关文章

      网友评论

          本文标题:MySQL的主从复制

          本文链接:https://www.haomeiwen.com/subject/bkjspftx.html