MySQL 主从搭建

本文详细介绍了如何在Linux环境中使用yum安装MySQL并搭建主从结构。首先,通过yum源安装MySQL,然后分别配置主库的二进制日志,并确保每个服务器具有独特的server-id。接着,确定主从日志的起始位置,在slave服务器上指定日志位置启动复制。最后,通过监控和测试验证主从复制的正确性。
摘要由CSDN通过智能技术生成

MySQL 主从搭建

yum 安装MySQL

  • mysql官网

  • 下载Mysql的yum源

  • 修改yum配置文件

  • 用yum安装mysql

  • 查看配置文件 修改配置文件

先分别搭建好单独的主从数据库

  • 关闭防火墙

    $ systemctl stop firewalld.service
    
  • 搭建mysql

    使用yum源搭建

  • 获取yum源

    官网下载 rpm文件地址

      #下载
      wget ***
      #安装到 yum源 配置  如果修改版本可以到 /etc/yum.repos.d/mysql*.repo 可以修改yum源的mysql的版本 
      rpm -ivh **.rpm
      #查看msyql
      rpm -qa |grep mysql
      #安装mysql
      yum install -y mysql-server
    
      # 启动mysql
      systemctl start mysqld
    
      #查看启动日志(默认位置)
      tailf -n100 /var/log/mysqld.log
      查看密码
    

主库上配置好二进制日志

  • 配置 Master 以使用基于二进制日志文件位置的复制

    必须启用二进制日志记录并建立唯一的服务器ID,否则则无法进行主从复制。

    停止MySQL服务。

    $ service mysql.server stop
    

    开启binlog ,每台设置不同的 server-id

    • master服务器
      $ vim /etc/my.cnf
      [mysqld]
      log-bin=mysql-bin
      server-id=1
      
    • slave 服务器
      $ service mysql.server stop
      $ vim /etc/my.cnf
      [mysqld]
      server-id=2
      

查看主从日志起始位置

  • master服务位置查看
    show master status;
    mysql>  show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000001 |      629 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    

指定日志位置启动

  • slave 服务器上

    • 配置主从日志的读取位置

      mysql> CHANGE MASTER TO
          -> MASTER_HOST='master_ip',
          -> MASTER_USER='replication',
          -> MASTER_PASSWORD='mima',
          -> MASTER_LOG_FILE='mysql-bin.000001',
          -> MASTER_LOG_POS=629;
      Query OK, 0 rows affected, 2 warnings (0.02 sec)
      
      change master to master_host='master_ip',master_user='slave',master_password='slave',master_log_file='mysql-bin.000001',master_log_pos=107;
      #一行上参数修改成 master_Ip 自己的 主库的 host 或者 ip
      CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication', MASTER_PASSWORD='mima', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=629;
      
    • 启动主从

      mysql> START SLAVE;
      Query OK, 0 rows affected (0.00 sec)
      
    • 主从状态查看

      show slave status;
      
      Slave_IO_State #从站的当前状态 
      Slave_IO_Running: Yes #读取主程序二进制日志的I/O线程是否正在运行 
      Slave_SQL_Running: Yes #执行读取主服务器中二进制日志事件的SQL线程是否正在运行。与I/O线程一样 
      Seconds_Behind_Master #是否为0,0就是已经同步了
      

监控主从

  • 通过建表,添加数据测试

  • 可以通过脚本测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值