MENU

MySQL主从复制

前言

MySQL主从复制,更应该说主从备份吧,实现的原理很简单,在主服务器上的数据库所有改动,都会通知从服务器的数据库修改,那么实现数据库之间的备份,那天万一主服务器数据库崩了,可以直接切换到备份的数据库,有一点的容灾能力。当然,对于业务并发量很高的时候,可以进行读写分离,这样一定情况下缓解数据库的瓶颈。

实现方法

实现主从复制的重点就是server-id(每台主机的唯一值,以便区分)。

  • 修改mysql配置

    # 找到数据库配置文件my.cnf文件,添加如下代码
    [mysqld]
    log-bin=mysql-bin    #开启二进制日志
    server-id=1         #设置server-id(主从服务器上的值需要唯一)
    
  • 重启MySQL,查看主服务器中二进制文件(执行下面命令查看)

    SHOW MASTER STATUS;
    

    下面的File以及Position在下面从服务器中需要用到。
    59-1

  • 创建自从复制通信账号

    这里就用账号test、密码test、从服务器IP123.123.123.123,作为测试。
    执行下列命令创建用户:

     CREATE USER 'test'@'123.123.123.123' IDENTIFIED BY 'test';  #创建用户
     GRANT REPLICATION SLAVE ON *.* TO 'test'@'123.123.123.123'; #分配权限
     flush privileges;   #刷新权限
    
  • 设置从服务器server-id(方法跟步骤一一样,需要注意server-id要唯一)

    server-id=1         #设置server-id(主从服务器上的值需要唯一)
    
  • 从服务器设置与主机通信


    CHANGE MASTER TO    
    MASTER_HOST='123.123.123.124',       #123.123.123.124为主服务器IP
    MASTER_USER='test',                  #在步骤三中设置的账号
    MASTER_PASSWORD='test',              #在步骤三中设置的密码
    MASTER_LOG_FILE='mysql-bin.011760',     #在步骤二中二进制文件File值
    MASTER_LOG_POS=398;                     #在步骤二中二进制文件位置Position
    
  • 启动同步数据库

    start slave;    
    
  • 查看状态

    show slave status\G;
    

    若是出现下面两个Yes值即为启动成功。

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    

到此,一个MySQL主从复制就完成。
对于在高迸发业务场景下,可以利用这个主从复制进行读写分离啦!

标签: mysql
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码