问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MySQL实现主从复制

创作时间:
作者:
@小白创作中心

MySQL实现主从复制

引用
CSDN
1.
https://m.blog.csdn.net/weixin_44646763/article/details/136949052

MySQL主从复制是一种常见的数据库复制技术,主要用于实现数据的冗余备份和读写分离。本文将详细介绍如何在MySQL中配置主从复制。

主服务器配置

  1. 编辑主服务器的配置文件(my.cnf 或 my.ini):
  • Linux系统默认位置:/etc/my.cnf

  • Windows系统默认位置:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

    在配置文件中添加以下内容:

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    
  1. 重启主服务器的MySQL服务:

    sudo systemctl restart mysqld
    
  2. 检查服务状态:

    sudo systemctl status mysqld
    
  3. 为主服务器创建一个复制用户,并授权其从服务器上复制数据:

    GRANT REPLICATION SLAVE ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';
    
  4. 刷新配置:

    FLUSH PRIVILEGES;
    

从服务器配置

  1. 编辑从服务器的配置文件(my.cnf 或 my.ini),添加以下内容:

    [mysqld]
    server-id=2
    relay-log=mysql-relay-bin
    read-only=1
    
  2. 重启从服务器的MySQL服务。

配置复制

  1. 在主服务器的MySQL服务中输入:

    SHOW MASTER STATUS;
    

    查看File和Position的值,如下图所示:

  2. 在从服务器上配置复制:

    CHANGE MASTER TO
    MASTER_HOST='主服务器的IP地址',
    MASTER_USER='在主服务器创建的复制用户名',
    MASTER_PASSWORD='在主服务器创建的复制用户密码',
    MASTER_LOG_FILE='File值(记录的二进制日志文件名)',
    MASTER_LOG_POS=Position值(记录的日志位置);
    
  3. 启动从服务器的复制进程:

    START SLAVE;
    
  4. 最后检查复制状态:

    SHOW SLAVE STATUS;
    

    如果Slave_IO_Running和Slave_SQL_Running都是yes,那么通常表示复制是在正常运行的。

验证主从复制

  1. 在主服务器MySQL创建一个叫abc的库:

    create database abc;
    
  2. 再到从服务器查看:

    show databases;
    

    此时从服务器也同样创建了一个叫abc的库。

其他

重置复制元数据:

如果元数据损坏或不一致,可以尝试重置它们。

  1. 停止复制进程:

    STOP SLAVE;
    
  2. 重置元数据表:

    RESET SLAVE;
    
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号