• mysql主从配置(基于mysql5.5.x)


    安装mysql数据库主从复制,步骤如下:
    1、主从服务器分别作以下准备:
        1.1、数据库版本完全一致
        1.2、修改root的密码, 不改也可以

    2、修改主服务器master

      #vi /etc/my.cnf

    [mysqld]
    server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段,方便知道id是多少
    log-bin=mysql-bin //[必须]启用二进制日志
    slave-skip-errors=all //忽略掉一些没啥大问题的错误

    下面的可以选配,一般都同步整个库,包括用户待,所以可以不配置:
    binlog-do-db=repl // 需要记录二进制日志的数据库,如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
    binlog-ignore-db=mysql //不需要记录二进制日志的数据库,如果有多个数据库可用逗号分隔,或者使用多个binlog-ignore-db选项
    replicate-do-db=repl // 需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项
    replicate-ignore-db=mysql //不需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
    log-slave-updates //这个参数是把更新的记录写到二进制文件中,保证slave挂在任何一台master上都会接收到另一个master的写入信息

    3、修改从服务器slave

      #vi /etc/my.cnf

    [mysqld]
    server-id=226 //[必须]服务器唯一ID
    log-bin=mysql-bin //启用二进制日志,单向同步不是必须,但双向同步则是[必须]
    slave-skip-errors=all //忽略掉一些没啥大问题的错误

    4、重启两台服务器的mysql

    5、在主服务器上建立帐户并授权slave

    一般不用root帐号,'%'表示所有客户端都能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.1.9,加强安全。
    CREATE USER 'myslave'@'%' IDENTIFIED BY 'myslave123';
    GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'%';

    6、登录主服务器的mysql,查询master的状态,并记下状态值
    6.1、查询master的状态前,需要保证在查询前后服务数据被更改,需要对主服务器增加只读锁

    mysql>flush tables with read lock;

    6.2、增加只读锁后,查询master状态,记下当前数据状态的值

    mysql>show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 | 337      |              |                  |
    +------------------+----------+--------------+------------------+
    注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化,6.1加锁也是为了在6.3步骤备份出该状态下整个的数据库

    6.3、直接把整个主库复制一份出来当从库,并启动从库(如果要做双向同步,同样需要对从库加锁,并且记下其状态值,数据必须和主库备份时一致)

    7、配置从服务器slave
    7.1、配置主服务器信息,注意337数字前后无单引号

    mysql>change master to MASTER_HOST='192.168.1.47', MASTER_PORT=3306, MASTER_USER='myslave', MASTER_PASSWORD='myslave123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=337;

    7.2、启动从服务器复制功能

    mysql>start slave;

    7.3、检查从服务器复制功能状态,大概返回1行数据

    mysql> show slave status;
    Slave_IO_State: Waiting for master to send event
    Master_Host: 192.168.1.47 //主服务器地址
    Master_User: myslave //授权帐户名,尽量避免使用root
    Master_Port: 3306 //数据库端口,部分版本没有此行
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000001
    Read_Master_Log_Pos: 337 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
    Relay_Log_File: mysql-relay-bin.000002
    Relay_Log_Pos: 253
    Relay_Master_Log_File: mysql-bin.000001
    Slave_IO_Running: Yes //此状态必须YES
    Slave_SQL_Running: Yes //此状态必须YES
    ......
    注:Slave_IO_Running及Slave_SQL_Running两个进程都必须是Yes状态,否则都是错误状态。

    8、如果是单向同步,则执行下面步骤结束配置。
    8.1、主服务器执行以下命令,用于解开服务器只读锁,让主服务器可以正常使用

    mysql>unlock tables;

    9、双向热备
    9.1、配置双向同步方法就是在单向同步的基础上略加改动,即在从机上做主机配置,在主机上做从机配置。
    9.2、重复5-8步骤,但主从服务器互换

  • 相关阅读:
    spring@Async注解实现异步方法调用
    mysql锁机制
    springboot启动时执行任务CommandLineRunner
    java-并发编程之fork/join框架
    mysql explain 执行计划详解
    mysql 时间相关sql , 按天、月、季度、年等条件进行查询
    swagger2 常用注解说明
    VirtualBox 安装CentOS虚拟机网卡配置
    RestFul是啥
    文本内文字字数过多,显示省略号
  • 原文地址:https://www.cnblogs.com/skey_chen/p/5750574.html
Copyright © 2020-2023  润新知