美文网首页
Ubuntu18.04/Mysql 5.7 建立主备模式Mysq

Ubuntu18.04/Mysql 5.7 建立主备模式Mysq

作者: JohnYuCN | 来源:发表于2020-09-30 19:12 被阅读0次

    一、数据库的安装

    详见https://www.jianshu.com/p/5073177eedf2
    本文实验环境为阿里云的两台ubuntu18.04服务器:
    master ip: 172.26.138.7
    slave ip: 172.26.0.209

    二、修改Master的配置(# 的行是我后增加的部分):

    编辑 /etc/mysql/mysql.conf.d/mysqld.cnf

    [mysqld]
    user            = mysql
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    port            = 3306
    basedir         = /usr
    datadir         = /var/lib/mysql
    tmpdir          = /tmp
    server-id       =1 # 必须保证集群中不同即可
    log_bin         =/var/log/mysql/mysql-bin.log  #指定主备之间交换的日志文件,同时也是打开服务器master模式的开关
    binlog_format   =mixed #日志的格式,包括mixed,statement,mixed
    binlog_do_db    =test10 #共享的数据库名称
    binlog_ignore_db        = mysql #不共享的数据库名称
    lc-messages-dir = /usr/share/mysql
    
    skip-external-locking
    
    #bind-address           = 127.0.0.1 #此行保证master可以被集群访问
    

    重启:systemctl restart mysql

    三、进一步配置master

    1. 分配复制用的帐号:
    mysql> create user repl;
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.26.138.7' IDENTIFIED BY '123';
    mysql> flush privileges;
    
    1. 查看master的状态,记录下相关信息,以供slave使用
    mysql> show master status \G;
    *************************** 1. row ***************************
                 File: mysql-bin.000003
             Position: 2525
         Binlog_Do_DB: test10
     Binlog_Ignore_DB: mysql
    Executed_Gtid_Set: 
    1 row in set (0.00 sec)
    

    记录下: File: mysql-bin.000003和Position: 2525(可以理解为同步点)

    到此:master配置完毕。

    四、修改slave的配置(# 是我加入的行):

    vim /etc/mysql/mysql.conf.d/mysqld.cnf

    [mysqld]
    user            = mysql
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    port            = 3306
    basedir         = /usr
    datadir         = /var/lib/mysql
    tmpdir          = /tmp
    server-id       = 2 #slave的server-id
    log_bin                 = mysql-bin #应该可以省略
    replicate_do_db         =test10 #选择本地数据库(可以与master的Binlog_Do_DB不同,但必须在slave中已经建立好)
    replicate_ignore_db     =mysql #忽略的数据库
    lc-messages-dir = /usr/share/mysql
    skip-external-locking
    
    

    重启:systemctl restart mysql

    五、启用slave

    在slave服务器上登录,并输入:

    mysql> change master to master_host='172.26.138.7',master_port=3306,master_user='repl',master_password='123',master_log_file='mysql-bin.000003',master_log_pos=2525;
    mysql> start slave
    mysql> show slave status \G;
    

    注: 当需要重新同步master时,可以首先stop slave,然后重复以上步骤

    六、测试:

    此时,可以在master上执行各种写入操作,然后在slave在查看即可。

    相关文章

      网友评论

          本文标题:Ubuntu18.04/Mysql 5.7 建立主备模式Mysq

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