MySql配置主从

6 篇文章 0 订阅
1 篇文章 0 订阅

Mysql主从配置

MySQL主从介绍

  • MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的

  • MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

  • 主从过程大致有3个步骤

    1)主将更改操作记录到binlog里

    2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里中继日志

    3)从根据relaylog里面的sql语句按顺序执行

  • 主上有一个log dump线程,用来和从的I/O线程传递binlog

  • 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地

MySQL主从原理图

image-20210312103359799

MySQL主从配置

  • vi /etc/my.cnf编辑配置文件

    • basedir = /usr/local/mysql
      datadir = /data/mysql
      port = 3306
      server_id = 130
      socket = /tmp/mysql.sock
      log_bin=linux1
      
  • /etc/init.d/mysqld restart重启mysql服务

  • ll /data/mysql/查看

    • image-20210312103616594
  • 添加环境变量 vim /etc/profile 添加

    • export PATH=$PATH:/usr/local/mysql/bin
      
    • source /etc/profile刷新配置

  • mysqldump -uroot mysql > /tmp/mysql.sql导出mysql的数据信息

  • mysql -uroot -e "create database kei"创建数据库kei

  • mysql -uroot kei < /tmp/mysql.sql将mysql的数据导入kei数据库中

  • 进入数据库执行 grant replication slave on *.* to 'repl' @192.168.207.130 identified by '123456';创建用作同步数据的用户并赋予权限,IP地址为从节点的地址(replication是MySQL非常出色的一个功能,该功能将一个MySQL实例中的数据复制到另一个MySQL实例中。)

image-20210312084236191

  • flush tables with read lock; 将表锁住 保持数据不变

    • image-20210312084013858
  • show master status; 查看主机状态

image-20210312084050151

从配置

  • vi /etc/my.cnf

    • basedir = /usr/local/mysql
      datadir = /data/mysql
      port = 3306
      server_id = 131
      socket = /tmp/mysql.sock
      
    • /etc/init.d/mysqld restart 重启mysql服务

scp 主的ip+文件目录  本机接收目录
  • scp /tmp/mysql.sql root@192.168.37.13:/tmp/ 在主上执行将tmp/mysql.sql文件复制到从机上

image-20210312091944317

  • mysql -uroot -e "create database kei"创建一样的数据库

  • mysql -uroot kei < /tmp/mysql.sql导入一样的数据库

  • mysql -uroot stop slave;停止slave服务

  • 进入数据库(没有密码)(698861为show master status;中的大小

    • change master to master_host='192.168.37.12',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=698861;
      
    • start slave;

  • show slave status\G

  • image-20210312101809934

  • unlock tables;在主上执行 解锁表

检验主从配置是否正常

  • 使用命令进行测试 主 从同时执行

mysql> use kei;

mysql> show tables;

mysql> select count(*) from db;

  • 主上操作,删除数据 mysql> truncate table db;

image-20210312092241861

image-20210312103130847

image-20210312103107056

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
配置MySQL主从复制,你需要进行以下步骤: 1. 首先,在主服务器上编辑主配置文件(my.cnf或my.ini),找到并设置以下参数: ``` server-id = 1 # 主服务器的唯一标识ID,每个服务器都应该有不同的ID log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志文件,用于记录所有的写操作 binlog_do_db = your_database_name # 需要复制的数据库名称 ``` 2. 重启主服务器以使配置生效。 3. 在主服务器上创建一个用于复制的专用用户,并授予适当的权限。例如,使用以下命令在MySQL shell中创建用户: ``` CREATE USER 'replication_user'@'slave_ip' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip'; FLUSH PRIVILEGES; ``` 4. 在主服务器上执行以下命令来锁定数据库并获取当前二进制日志文件的位置: ``` FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; ``` 5. 记下上述命令的输出,包括文件名和位置(File 和 Position)。 6. 在从服务器上编辑从配置文件,并设置以下参数: ``` server-id = 2 # 从服务器的唯一标识ID,与主服务器不同 relay-log = /var/log/mysql/mysql-relay-bin.log # 从服务器的中继日志文件 log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志文件 ``` 7. 重启从服务器以使配置生效。 8. 在从服务器上使用以下命令来连接到主服务器并配置复制: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file_name', MASTER_LOG_POS=master_log_position; ``` 其中,master_ip 是主服务器的IP地址,replication_user 是在主服务器上创建的复制用户,password 是复制用户的密码,master_log_file_name 和 master_log_position 分别是步骤4中获取的日志文件名和位置。 9. 在从服务器上启动复制进程: ``` START SLAVE; ``` 10. 检查从服务器的状态,确保没有错误: ``` SHOW SLAVE STATUS\G ``` 确保以下参数的值为 "Yes": - Slave_IO_Running - Slave_SQL_Running 如果一切配置正确,主从复制就会开始工作。主服务器上的更改会自动在从服务器上复制和应用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值