美文网首页
MySQL主从复制

MySQL主从复制

作者: 贪挽懒月 | 来源:发表于2021-06-17 17:53 被阅读0次

    本文将手把手教你怎么配置MySQL的主从。

    一、环境准备

    • 主机:192.168.0.101
    • 从机:192.168.0.105

    首先这主机和从机上安装MySQL,大家可以安装mariadb,更简单一点儿,安装命令如下:

    # 安装
    yum install -y mariadb-server
    # 启动
    systemctl start mariadb
    # 设置密码
    mysql_secure_installation
    

    注意主机和从机ip要能互相ping通,mariadb的版本要一致。

    二、修改配置

    1. 修改主机配置:

    执行命令find / -name my.cnf,找到配置文件的目录,打开配置文件,主要是在[mysqld]修改如下两个配置。

    • server-id:新增这个配置,这是主机的唯一id标识,一般主机的是1,从机的是2;

    • log-bin:必须启用二进制日志文件,log-bin=自己mysql路径/mysqlbin

    其他的都是可选配置,我的主机完整配置如下:

    [mysqld]
    #必须
    server-id=1
    #必须,日志文件目录
    log-bin=/var/lib/mysql/mysqlbin
    #可选,err日志文件目录
    log-err=/var/lib/mysql/mysqlerr
    #设置为0,表示这是主机,可以进行读和写
    read-only=0
    #可选,设置不需要复制的数据库
    binlog-ignore-db=mysql
    #可选,设置需要复制的数据库
    #binlog-do-db=study-mysql
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    !includedir /etc/my.cnf.d
    

    修改完成后重启。

    2. 修改从机配置:

    从机主要也是修改上面说的那两个配置,我从机配置文件如下:

    [mysqld]
    #必须
    server-id=2
    log-bin=/var/lib/mysql/mysqlbin
    log-err=/var/lib/mysql/mysqlerr
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    !includedir /etc/my.cnf.d
    

    修改完后重启。

    3. 给从机授权:

    在主机上执行如下sql命令,给从机授权:

    grant replication slave on *.* to 'root'@'192.168.0.105' identified by 'zsl';
    flush privileges;
    

    这里就相当于给从机创建一个账户和密码,让从机可以通过这个账户密码,登录了到主机,进行数据的复制。

    然后在主机上执行如下sql:

    show master status;
    

    这是查看主机的状态,结果如下:

    执行结果

    这里我们需要记住file和position这两列的值。

    4. 从机连接主机:

    接着在从机上执行如下sql:

    change master to master_host='192.168.0.101',
    master_user='root',
    master_password='zsl',
    master_log_file='mysqlbin.000001',
    master_log_pos=471;
    
    start slave;
    

    root和zsl就是刚才在主机上为从机创建的账户和密码,mysqlbin.000001和471就是刚才主机那边show master status查出来的file和position。

    然后执行:

    show slave status\G
    

    查看从机的状态,如果看到下面两个都是yes,那就配置成功了。

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    

    接下来主机上所做的操作,从机上都会做相同的操作了。如果要停掉从机,执行stop slave就行,停掉了之后,在从机上再次执行上面的操作就行了,不过file和position可能会变,到主机上再次查看一下即可。

    相关文章

      网友评论

          本文标题:MySQL主从复制

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