zoukankan      html  css  js  c++  java
  • mysql数据库主从同步I/O问题修复

    mysql数据库主从同步I/O问题,下面介绍比较靠谱的修复方法。

    主节点IP:10.99.202.25,从节点IP:10.99.202.26,修复步骤如下:

    1,查看主库repl账号访问权限

    mysql -h10.99.202.25 -P3306 -uroot -p"密码";
    #进入主数据库后执行:
    select user,host from mysql.user;  #注意查看repl用户的host列要允许从节点访问。

    1.1,调整主库repl账号访问权限

    如果上一步查询repl访问权限不正确,需要调整:

    update mysql.user set host='%' where user='repl';
    flush privileges;

    2,查看主库repl账号操作权限

    进入主数据库后执行:

    show grants for 'repl'@'%'; #注意%可以按实际的来

    2.1,调整主库repl账号操作权限

    如果上一步查询repl操作权限不正确,需要调整:

    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' identified by 'repl的密码';
    show grants for 'repl'@'%'; #注意%可以按实际的来

    3,主库锁表,注意窗口不要关闭

    进入主数据库后执行:

    flush table with read lock; #锁表

    4,备份主库数据

    cd /data/kube/  #进入数据目录执行

    mysqldump -h10.99.202.25 -P3306 -uroot -p"密码" --all-databases --single-transaction --default-character-set=utf8 > /data/kube/mysql_bak20210118_2205.sql

    5,查看主库binlog日志信息

    进入主数据库后执行:

    show master statusG

    记住mysql-bin.000xxx找出File名称和Position位置

    6,把主库备份文件移动到从库所在节点

    将备份数据拷贝到从节点:

    #通过scp命令将主节点备份数据拷贝到从节点
    scp -rp /data/kube/mysql_bak20210118_2205.sql root@10.99.202.26:/data/kube/

    7,在从库上停止slave

    新开窗口登录从库

    mysql -h10.99.202.26 -P3306 -uroot -p"密码"
    #进入从数据库后执行:
    stop slave;

    8,在从库上导入主库的备份数据

    在从数据库执行导入数据:

    #进入从数据库后执行
    source /data/kube/mysql_bak20210118_2205.sql

    9,查看主库与从库的server_id

    在主库,从库分别查看:

    show variables like 'server_id';

    #要求值不能相同。

    10,查看主库与从库的server-uuid

    在主库,从库分别查看 sudo vi /data/kube/mysql/auto.cnf 里面有生成的server-uuid值
    #要求值不能相同。

    10.1,解决server-uuid重复问题

    在从节点执行:
    sudo mv /data/kube/mysql/auto.cnf /data/kube/mysql/auto.cnf.bak
    然后重启mysql服务:
    sudo docker restart mysql-slave
    #重启从节点mysql服务后,新生成的server-uuid值与原来不同

    12,解锁主数据库

    #进入主数据库后执行解锁:
    unlock tables;

    13,重置从库同步

    #进入从库执行:
    reset slave;

    14,从库上重新设置同步节点

    CHANGE MASTER TO
    MASTER_HOST='10.99.202.25',
    MASTER_PORT=3306,
    MASTER_USER='repl',
    MASTER_PASSWORD='repl',
    MASTER_LOG_FILE='mysql-bin.000005',
    MASTER_LOG_POS=1158;
    #host,port,user,password请根据你的主库设置相应修改,log_file和log_pos根据主库中master status相应修改。

    host,port,user,password请根据你的主库设置相应修改,log_file和log_pos根据主库中master status相应修改。

    15,从库上开启slave

    start slave;

    16,从库上查看slave状态

    show slave statusG;

    #显示如下信息则表示正常

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    17,主库上确认从库Slave_UUID

    进入主数据库后执行:

    show variables like 'server_uuid';
    show slave hosts; #确认主从节点对应正确即完成

    【完】


    参考文档:

    MySQL 手动主从同步不锁表
    https://www.cnblogs.com/cheyunhua/p/14060051.html

    mysql 数据同步 出现Slave_IO_Running:No问题的解决方法小结
    https://blog.csdn.net/mergerly/article/details/50068589

    slave have equal MySQL Server UUIDs原因及解决
    https://www.cnblogs.com/cxxjohnson/p/7522515.html

    MySQL Master command COM_REGISTER_SLAVE failed: Access denied for user
    https://blog.csdn.net/snowhite91/article/details/102816441

  • 相关阅读:
    BZOJ3674:可持久化并查集加强版
    BZOJ3772:精神污染
    BZOJ3932:[CQOI2015]任务查询系统
    BZOJ3123:[SDOI2013]森林
    BZOJ1926:[SDOI2010]粟粟的书架
    029 列表类型内置方法
    02 Python爬虫之盗亦有道
    01 Python爬虫之Requests库入门
    028 字符串类型内置方法
    027 数字类型内置方法
  • 原文地址:https://www.cnblogs.com/xiongzaiqiren/p/14327070.html
Copyright © 2011-2022 走看看