zoukankan      html  css  js  c++  java
  • mysql 5.7 主从同步问题

    1、slave同步状态中出现Slave_SQL_Running: No ,即slave不同步!

    解决办法:

    第一种方法:忽略错误后,继续同步。

    该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况(下面均为在slave机器上的操作)mysql> stop slave;
    mysql> set global sql_slave_skip_counter =1;   //表示跳过一步错误,后面的数字可变;或者在my.cnf里添加slave-skip-errors = all(上面已在配置中添加)
    mysql> start slave;
    mysql> show slave statusG      //查看:

    第二种方法:重新做主从,完全同步

    该方法适用于主从库数据相差较大,或者要求数据完全统一的情况

    1--master主库上操作
    mysql> flush tables with read lock;  //进行锁表,防止数据写入。注意该处是锁定为只读状态,语句不区分大小写

    mysqldump --lock-all-tables --all-databases --flush-logs --master-data=2 > /root/allsql.sql   //主库完全备份(如果是指定库同步,就备份指定库),注意数据库备份一定要定期进行,确保数据万无一失

    mysql> show master status;      //查看master状态,注意log file和pos节点,slave同步会用到

    # scp mysql.bak.sql root@192.168.1.102:/tmp/        //把备份文件传到slave从库机器,进行数据恢复

    2--slave从库操作

    mysql> stop slave;
    mysql> source /tmp/mysql.bak.sql
    mysql> change master to master_host = '192.168.1.101', master_user = 'slave', master_port=3306.......;
    mysql> start slave;
    mysql> show slave statusG 
    .......
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    1--master主库上操作

    解锁数据库

    unlock  tables

    此种方法中最为关键主要有两步:
    ①主服务器上锁表做完全备份,并滚动日志;
    ②从服务器上进行半道恢复.

    2、slave同步状态中出现Slave_IO_Running: NO

    原因:如果数据库为复制虚拟机过去的,那么auto.cnf 中记录的数据库唯一UUID 会冲突导致,从数据库的sql_io 进程无法启动。

    解决:重新安装数据库

  • 相关阅读:
    php 创建文件
    php xml格式对象 返回->对应格式数组
    php 将16进制数串转换为二进制数据的函数
    php 生成随机字符串
    高质量PHP代码的50个实用技巧:非常值得收藏
    php __FILE__,__CLASS__等魔术变量,及实例
    纯js上传文件 很好用
    XMLHttpRequest上传文件实现进度条
    Java BufferedReader、InputStream简介
    Java socket通信
  • 原文地址:https://www.cnblogs.com/fanggege/p/10856102.html
Copyright © 2011-2022 走看看