• Mysql主从配置


    版本:MySQL5.7

    主从同步原理:

    准备两台机器
    master 192.168.44.121
    slave 192.168.44.128

    如果用clone的方式得到两个MySQL服务,需要注意的地方:
    不同机器的UUID不能重复,否则IO线程不能启动:

    find / -name auto.cnf
    vim /var/lib/mysql/auto.cnf

    把里面的UUID随便改掉一位。

    重启服务命令:

    service mysqld restart

    121 主节点配置

    配置文件开启binlog

    /etc/my.cnf文件

    [mysqld]下面增加几行配置:

    log-bin=/var/lib/mysql/mysql-bin
    binlog-format=ROW
    server_id=1

    创建给slave使用的用户

    在121主节点创建给slave 128节点访问的用户(发放通行证)
    连接到MySQL:

    mysql -uroot -p123456;

    执行SQL:

    CREATE USER 'repl'@'192.168.44.128' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.44.128';
    FLUSH PRIVILEGES;

    如果有多个slave节点,使用同一个用户,也可以把IP设置成通配符的方式,例如192.168.44.*

    获取binlog名字和position

    接下来要获取最新的binlog文件名和position

    show master status;

    记住file名字和position,后面会用到
    这个时候master不要发生写操作,否则position和file可能会变化。

    slave节点配置

    配置文件

    log-bin=/var/lib/mysql/mysql-bin
    binlog-format=ROW
    server_id=2

    开启主从同步

    连接到MySQL:

    mysql -uroot -p123456;

    file和pos是从主节点获取的

    change master to master_host='192.168.44.121', master_user='repl', 
    master_password='123456', master_log_file='mysql-bin.000028', master_log_pos=773;

    查看从节点状态

    show slave statusG;

    注意,主从同步成功的标志:
    IO线程和SQL线程都是成功运行的:

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    现在可以在master节点上面做任意对于库表的修改操作,slave会自动同步。
    不要直接操作slave

    如果IO线程not running:

    stop slave;                                                      
    SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
    start slave;                                                      
    show slave statusG  

    出了问题一定要看日志,看日志

     
  • 相关阅读:
    gcc 時 mpreferredstackboundary
    WordPress Charset SQL Injection Vulnerability
    assembly note
    用GDB示範Buffer Overflow 的過程
    Microsoft Dynamics CRM 4.0 文章页面 添加自定义按钮
    Microsoft Dynamics CRM 4 将电话记录绑定在DataGrid上。
    Microsoft Dynamics CRM 4 GenerateAuthenticationHeader() 函数
    jQuery 中的 Ajax $.ajax() load() $.get() $.post() $.getJSON() $.getScript()
    Javascript 弹出窗体
    POST与GET的区别
  • 原文地址:https://www.cnblogs.com/flgb/p/14540427.html
Copyright © 2020-2023  润新知