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

    主从之间建立的slave_IO线程:复制master中binlog日志的SQL语句到本机的中继日志(relay-log)中

    主从之间建立的slave_SQL线程:执行本机中继日志中的SQL语句

    条件:

    在建立主从同步之前,主从数据要一样

    主库必须开启binlog日志

    主库:

    step1:启用binlog日志

    server_id=序列号(1-255)

    log-bin                            //默认在/var/lib/mysql

    step2:重启mysqld服务

    systemctl restart mysqld

    step3:添加授权用户

    >grant replication slave on *.* to 用户@‘客户端地址’ identified by '密码';

    查看当前的日志信息:

    >show master slaveG;

    从库:

    step1:启用server_id

    server_id=序列号(1-255)

    step2:重启mysqld服务

     systemctl restart mysqld

    step3:在从库上指定主库信息

    >change master to 

    master_host='主机名',master_user='主库授权用户',master_password='授权用户密码',master_log_file='日志文件',master_log_pos=偏移量;【log信息:show master statusG;

    step4:启动slave进程

    >start slave;     

         ============== IO:yes

         ==============SQL:yes

    master信息会自动保存到/var/lib/mysql/master.info文件中

    如果要更改master信息,需要先 >stop slave;

    测试:

    step1:在主库上添加访问数据库的普通用户

    grant all on *.* to 用户@'客户端地址'  identified by '密码';

    客户端连接测试:

    mysql -h  主库ip  -u普通用户    -p普通用户密码 

    ==============》从库查看数据变化

    把从库恢复成独立的库 :

    step1:进入/var/lib/mysql中删除文件

    rm  -rf   master.info   relay-log.info  主机名-relay-bin.xxxxx*   主机名.relay-bin.index

    step2:重启mysqld服务

       systemctl restart mysqld

    >show slave statusG;                         //验证结果

     主从同步模式:

    单向复制:主----》从

    链式复制:主---》从(log_slave_update)---->从

    互为主从:主《----》主

    一主多从:

    从《-----主-----------》从

    报错: Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

    在从库停止复制进程时出现错误,原因是将复制信息记录表中了

    解决方法:

    step1:drop 备份的 ibd表

     >use mysql
     >drop table slave_master_info;
     >drop table slave_relay_log_info;
     >drop table slave_worker_info;
     >drop table innodb_index_stats;
     >drop table innodb_table_stats;

    step2:重新导入

    find / -name mysql_system_tables.sql
    > source /usr/share/mysql/mysql_system_tables.sql

    step3:重启数据库
    systemctl restart mysqld

                                                                                                                                                                               

  • 相关阅读:
    NoSQL数据库:Java开源项目Neo4j简介
    EPOLL和IOCP比较
    CString&CStringA&CStringW之间的相互转换
    CString和CStringA之间的转换
    Windows IOCP模型与Linux EPOLL模块之比较
    OCP-1Z0-053-V13.02-708题
    OCP-1Z0-053-V13.02-709题
    OCP-1Z0-053-V12.02-342题
    OCP-1Z0-053-V12.02-341题
    OCP-1Z0-053-V13.02-706题
  • 原文地址:https://www.cnblogs.com/krystal-LA-zx/p/13267773.html
Copyright © 2011-2022 走看看