zoukankan      html  css  js  c++  java
  • MySQL 主从复制问题

    导致SQL线程故障原因分析及解决方案

    原因

    1. 版本差异,参数设定不同,比如:数据类型的差异,SQL_MODE影响
    2. 要创建的数据库对象已经存在
    3. 要删除或修改的对象不存在  
    4. DML语句不符合表定义及约束时.  
    原因是由于从库发生了写入操作.
    Last_SQL_Error: Error 'Can't create database 'klvchen'; database exists' on query. Default database: 'klvchen'. Query: 'create database klvchen'
    

    处理方法(以从库为核心的处理方案):

    # 方法一:
    stop slave; 
    set global sql_slave_skip_counter = 1;
    # 将同步指针向下移动一个,如果多次不同步,可以重复操作。
    start slave;
    
    # 方法二:
    vi /etc/my.cnf
    # 在 [mysqld] 下添加
    slave-skip-errors = 1032,1062,1007
    
    # 常见错误代码:
    1007:对象已存在
    1032:无法执行DML
    1062:主键冲突,或约束冲突
    
    注意,以上操作有风险!最安全的做法就是重新构建主从。把握一个原则,一切以主库为主.
    
    # 方法三:(最优解决方案)
    1.设置从库只读.
    vi /etc/my.cnf
    # 在 [mysqld] 下添加
    read-only 
    
    # 查看参数是否生效
    show variables like '%read_only%';
    注意:read-only 只会影响到普通用户,对管理员用户无效。
    
    2.加中间件
    读写分离。如 mycat
    
  • 相关阅读:
    OSG开源教程(转)
    小组项目工作分配,任务确认
    OSG安装编译
    JAVA开发工具IDEA使用体验
    软件工程结对项目总结
    迭代开发个人总结20160705
    迭代开发个人总结20160704
    迭代开发个人总结20160703
    迭代开发个人总结20160702
    迭代开发个人总结20160701
  • 原文地址:https://www.cnblogs.com/klvchen/p/11772830.html
Copyright © 2011-2022 走看看