美文网首页数据库PHP专题服务器运维方向
mysql 读写分离配置,主/备形式

mysql 读写分离配置,主/备形式

作者: 阿休 | 来源:发表于2018-12-20 17:00 被阅读0次

    1、配置master
    1)配置

    server-id=1 
    log-bin=mysql-bin
    #server-id:为主服务器A的ID值 log-bin:二进制变更日值
    

    2)、重启master
    docker中重启

    docker restart [CONTAINER ID,容器id]
    

    linux中重启

    # a) 使用 service 启动:
    service mysqld restart 
    service mysql restart (5.5.7版本命令)
    
    # b) 使用 mysqld 脚本启动:
    /etc/init.d/mysqld restart
    

    运行SHOW MASTER STATUS;,输出如下:


    状态结果

    创建用户并授权:用户:repl密码:slavepass

    mysql> CREATE USER 'repl'@'123.57.***.***' IDENTIFIED BY 'slavepass';#创建用户
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85';#分配权限
    mysql>flush privileges;   #刷新权限
    

    2、配置slave
    1)配置
    slave的配置与master类似,你同样需要重启slave的MySQL。如下:

    log_bin           = mysql-bin
    server_id         = 2
    relay_log         = mysql-relay-bin
    log_slave_updates = 1
    read_only         = 1
    

    server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会出现问题)。relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。

    1. 启动slave
    mysql> CHANGE MASTER TO
        ->     MASTER_HOST='182.92.***.***',
        ->     MASTER_USER='rep1',
        ->     MASTER_PASSWORD='slavepass',
        ->     MASTER_LOG_FILE='mysql-bin.000001',
        ->     MASTER_LOG_POS=155;
    
    mysql> start slave;
    

    3)查看slave状态

    mysql> show slave status\G;
    

    出现错误:
    error connecting to master 'rep1@'39.108..:3306' - retry-time: 60 retries: 4
    解决办法:

    docker  start  master-mysql        开始Master mySql
    docker  ps  -a       查出自己创建的container(容器)的ID
    docker  exec  -it  63c9e29aelef  bash   (每个人创建的container ID都不一样)
    mysql  --user=root  --password   
    ALTER  USER  'rep1'@'39.108.***.***'  IDENTIFIED  WITH  mysql_native_password  BY  'slavepass'; 
    

    相关文章

      网友评论

        本文标题:mysql 读写分离配置,主/备形式

        本文链接:https://www.haomeiwen.com/subject/fnaykqtx.html