MySQL数据库的主从复制简单学习使用

MySQL数据库的主从复制简单学习使用

  1. 使用主从复制前必须保证从服务器数据表和主服务器数据表一样(包括表,事件,函数等)

  2. 主从服务器的MySQL版本最好使用同一个版本,如果不能则主服务器的MySQL版本不得高于从服务器的MySQL版本

  3. 首先在主服务器的MySQL中创建一个用户

    # 创建一个连接用户repl,授予REPLICATION SLAVE权限.并指定域可连接,密码是yourpassword
    GRANT REPLICATION SLAVE ON . TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'yourpassword';

  4. 配置主服务器

    # Windows打开my.ini Linux/Mac打开my.cnf
    # 加入以下值
    log-bin = mysql-bin # 使用mysql-bin文件名保存数据
    server-id = 1 # 指定唯一server ID

  5. 重启主服务器的MySQL,使用show master status\G查看状态

    字段说明:

    • File:表示正在使用的binlog文件,以及从服务器从该文件复制数据
    • Postion:与binlog文件大小相同,表示下一个被记录事件的位置,以及开始复制的开始位置(row)
    • Binlog_Do_DB:两者都是表示主服务器写入binlog文件的内容过滤,为空表示不过滤
    • Binlog_Ignore_DB:两者都是表示主服务器写入binlog文件的内容过滤,为空表示不过滤
  6. 配置从服务器, 并重启

    # 配置文件同4
    # 加入以下内容
    log-bin = mysql-bin
    server-id = 2

  7. 指定主服务器信息(CHANGE MASTER TO)

    # MASTER_LOG_POS=0因为要从日志的开始位置开始读

CHANGE MASTER TO MASTER_HOST='192.168.1.10',MASTER_USER='repl',MASTER_PASSWORD='yourpassword',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=0;

  1. 使用`show slave status\G'查看连接信息

  2. 开始复制主服务器数据

    start slave

  3. 主服务器可以使用show processlist查看连接信息


  • 首先是主服务器将用户对数据库的更新操作以二进制格式保存到Binary Log日志文件中,然后由Binlog Dump线程将Binary Log日志文件传输到从服务器
  • 从服务器通过I/O线程将主服务器的Binary Log日志文件中的更新操作复制到Relay Log的中继日志文件中,再通过SQL线程将Relay Log中继日志文件中的操作依次在从服务器执行,从而实现数据同步.
  • 常用命令记录
    • 查看主服务器状态:show master status
    • 查看从服务器状态:show slave status
    • 开始复制:start slave
    • 查看连接信息:show processlist
    • 新建一个从服务器连接用户: CHANGE MASTER TO MASTER_HOST='192.168.1.10',MASTER_USER='repl',MASTER_PASSWORD='yourpassword',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=0;
    • more...
posted @ 2018-04-22 12:18  Masker。  阅读(69)  评论(0编辑  收藏  举报