MySQL主从复制原理及实验

这篇具有很好参考价值的文章主要介绍了MySQL主从复制原理及实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原理

MySQL主从复制原理及实验,MySQL,Linux,mysql,数据库

 MySQL主从复制原理及实验,MySQL,Linux,mysql,数据库

 1.环境搭建

 1.需要两台服务器,如我的分别是:

        1.  -》 192.168.197.146---主库

        2.  -》 192.168.197.147---从库

2.分别关闭防火墙或者放行mysql端口号3306

        如: systemctl   stop  firewalld

                systemctl    disable  firewalld

 2.配置主库:

1.在mysql的配置文件  /etc/my.cnf中添加:

 server-id=1

read-only=0

2.重启mysql

        systemctl  restart  mysql 

如果重启中没有报错,就说明没有问题

 3.登录mysql,创建远程连接的账号,并授予主从复制权限

mysql>  create user 'redhat'@'%' identified with mysql_native_password by 'Root@123456';
Query OK, 0 rows affected (0.01 sec)

mysql> grant  replication slave on *.* to 'redhat'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
MySQL主从复制原理及实验,MySQL,Linux,mysql,数据库

ps: 

如果 show master status;没有东西,那么可能是你的二进制文件没有开启开关,5.6版本以上要手动指定。

如: 在/etc/my.cnf中,添加:log-bin=mysqld-binlog

这样主库就配置好了

3.从库配置

1.在my.cnf中

  server-id=2
    read-only=1
    #supper-read-only  指像超级管理员那样的权限

 2.重启mysqld服务

    systemctl restart mysqld

 3.登陆从库的mysql,设置登陆配置:

MySQL主从复制原理及实验,MySQL,Linux,mysql,数据库

mysql> change  master to
    -> master_host='192.168.197.146',
    -> master_user='redhat',
    -> master_password='Root@123456',
    -> master_log_file='mysqld-binlog.000001',
    -> master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

 4.开启同步操作:

start  replica  --8.0.22版本之后

start  slave        8.0.22版本之前

 5.查看同步操作:主要看下面两个是否为Yes,状态正常

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: 192.168.197.146
                  Master_User: bak
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysqld-binlog.000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: localhost-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysqld-binlog.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes.......

           

测试

在主库中创建数据库和表,并插入数据:

mysql> create database db01;
Query OK, 1 row affected (0.01 sec)

mysql> use db01;
Database changed

mysql> create table tb_user(

                id int(11) primary key not null auto_increment,

                 name varchar(50) not null,

                 sex varchar(1)

)engine=innodb default charset=utf8mb4;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into tb_user values(null,'Tom','1'),(null,'Tigger','0'),(null,'Dawn','1');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show tables;
+----------------+
| Tables_in_db01 |
+----------------+
| tb_user        |
+----------------+
1 row in set (0.00 sec)

mysql> select * from tb_user;
+----+--------+------+
| id | name   | sex  |
+----+--------+------+
|  1 | Tom    | 1    |
|  2 | Tigger | 0    |
|  3 | Dawn   | 1    |
+----+--------+------+
3 rows in set (0.00 sec)

从库:

你可以进入从库里面去查看,是否有数据库在,如果有,你再 在主库里面进行update改数据操作,然后看从库里面的数据是否同步更新,如果能达到这个效果,那就成功了文章来源地址https://www.toymoban.com/news/detail-600428.html

到了这里,关于MySQL主从复制原理及实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库 主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月10日
    浏览(48)
  • 【MySQL数据库】主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月11日
    浏览(59)
  • 【数据库】mysql主从复制与读写分离

      读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE ),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。   因为数据库的\\\"写”(写10000条数据可能要3分钟)操作是比较耗时的。   

    2024年02月11日
    浏览(72)
  • 实现↝Mysql数据库主从复制搭建与同步

    一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。 如生产环境中,使用redis数据库作为缓存数据库,用户访问业务数据时,先

    2024年02月10日
    浏览(56)
  • 【数据库七】MySQL主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作 (insert、update、delete),而 从数据库处理select查询操作 。 数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库 。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据

    2024年02月11日
    浏览(59)
  • Mysql数据库--实现主从复制搭建与同步

    一般数据库都是读取压力大于写数据压力,主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,主服务器只负责写,而从服务器只负责读。 如生产环境中,使用redis数据库作为缓存数据库,用户访问业务数据时,先

    2024年02月08日
    浏览(62)
  • mysql主从复制及原理

    主要基于MySQL二进制日志 主要包括三个线程(2个I/O线程,1个SQL线程) 1、MySQL将数据变化记录到二进制日志中; 2、Slave将MySQL的二进制日志拷贝到Slave的中继日志中; 3、Slave将中继日志中的事件在做一次,将数据变化,反应到自身(Slave)的数据库 在主服务器(master)上启用

    2024年02月14日
    浏览(31)
  • MySQL主从复制原理剖析与应用实践

    vivo 互联网服务器团队- Shang Yongxing MySQL Replication(主从复制)是指数据变化可以从一个MySQL Server被复制到另一个或多个MySQL Server上,通过复制的功能,可以在单点服务的基础上扩充数据库的高可用性、可扩展性等。 MySQL在生产环境中被广泛地应用,大量的应用和服务都对MyS

    2023年04月11日
    浏览(80)
  • Linux系统中MySQL 数据库的主从同步

    在主数据库服务器上配置: 编辑主数据库服务器的配置文件(my.cnf) : 打开 MySQL 配置文件,一般路径为 /etc/my.cnf 或 /etc/mysql/my.cnf。 确保以下参数已启用或配置正确: 注: 一定是[mysqld]代码块中 创建用于复制的用户 : 登录到 MySQL 控制台: mysql -u root -p 创建用于复制的用户

    2024年03月23日
    浏览(58)
  • Sqlserver_Oracle_Mysql_Postgresql不同关系型数据库之主从延迟的理解和实验

    关系型数据库主从节点的延迟是否和隔离级别有关联,个人认为两者没有直接关系,主从延迟在关系型数据库中一般和这两个时间有关:事务日志从主节点传输到从节点的时间+事务日志在从节点的应用时间 事务日志从主节点传输到从节点的时间,相关因素有以下2点: 1、事

    2024年02月14日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包