MySQL主从复制

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

目录
  • 一、主从复制的原理
  • 二、搭建主从复制(一主一从)
    • 1、两台主机安装MySQL
    • 2、修改配置文件
    • 3、创建主从复制用户
    • 4、主从库重启并验证server_id
    • 5、配置从库与主库的复制关系
    • 6、验证主从复制

一、主从复制的原理

  1. master服务器将数据的改变记录二进制日志,当master上的数据发生改变时,则将其改变写入二进制日志中;
  2. salve服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/OThread请求master二进制事件;
  3. 同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从节点本地的中继日志中;
  4. 从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致;
  5. 最后I/OThread和SQLThread将进入睡眠状态,等待下一次被唤醒。

MySQL主从复制

二、搭建主从复制(一主一从)

涉及主机:

主机名 IP地址
db01(master) 192.168.112.40
db02(slave) 192.168.112.50

1、两台主机安装MySQL

#二进制安装
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
tar xzvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
mkdir /application
mv mysql-5.6.40-linux-glibc2.12-x86_64 /application/mysql-5.6.40
ln -s /application/mysql-5.6.40/ /application/mysql
cd /application/mysql/support-files/
\cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysqld
cd /application/mysql/scripts
useradd mysql -s /sbin/nologin -M
yum -y install autoconf
cd /application/mysql/scripts/
./mysql_install_db --user=mysql --basedir=/application/mysql --data=/application/mysql/data
echo 'export PATH="/application/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh
source /etc/profile
sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe
#指定MySQL安装根目录以及数据目录
vim /etc/my.cnf
basedir = /application/mysql/
datadir = /application/mysql/data
#设置密码
mysqladmin -uroot password '123'

2、修改配置文件

vim /etc/my.cnf
#主库
server_id=1
log_bin=mysql-bin
binlog_format=row
#从库
server_id=2

3、创建主从复制用户

#登录数据库
[root@db01 ~]# mysql -uroot -p123
#创建slave用户
mysql> grant replication slave on *.* to slave@'192.168.112.%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

4、主从库重启并验证server_id

主从库重启

/etc/init.d/mysqld restart
#遇到重启失败
[root@db02 ~]# /etc/init.d/mysqld restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL.Logging to '/application/mysql/data/db02.err'.
...........^C
[root@db02 ~]#
[root@db02 ~]# mysqladmin -uroot -p123 shutdown
Warning: Using a password on the command line interface can be insecure.
[root@db02 ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!

验证server_id

mysql> show variables like "server_id";

MySQL主从复制

验证主库的binlog是否开启

mysql> show variables like "%bin%";

MySQL主从复制

5、配置从库与主库的复制关系

#从库
change master to
master_host='192.168.112.40',
master_user='slave',
master_password='123',
master_log_file='mysql-bin.000001',
master_log_pos=120;

start slave;
show slave status\G;

主库使用show master status;

查看master_log_file和master_log_pos

MySQL主从复制

MySQL主从复制

MySQL主从复制

6、验证主从复制

目前两个数据库数据是一致的

MySQL主从复制

主库创建t1表并插入数据

MySQL主从复制

可以看到从库也同步复制了主库更新的数据

MySQL主从复制

至此主从复制配置完成文章来源地址https://www.toymoban.com/news/detail-844294.html

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

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

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

相关文章

  • MySQL主从复制原理剖析与应用实践

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

    2023年04月11日
    浏览(67)
  • mysql 数据库主从复制搭建

    MySQL 主从复制主要用于实现高可用性和备份。在主从复制中,一个 MySQL 实例(称为主节点)将其数据更改复制到至少一个其他 MySQL 实例(称为从节点)上。主要借助于数据库二进制日志binlog进行数据的复制。 主从数据库对应的操作系统、数据库版本要一致。 1、主库配置 设

    2024年02月20日
    浏览(44)
  • mysql主从复制搭建(一主一从)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 介绍 MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后解析日志

    2024年02月12日
    浏览(39)
  • Docker 搭建MySQL主从复制-读写分离

    MySQL主从复制是一种常用的数据库高可用性解决方案,通过在主数据库上记录的数据变更,同步到一个或多个从数据库,实现数据的冗余备份和读写分离。在Docker环境下搭建MySQL主从复制和读写分离,不仅方便管理,还能充分发挥Docker的轻量、可移植性等特性。 在开始搭建之

    2024年02月22日
    浏览(34)
  • docker创建MySQL镜像,搭建主从复制环境

    学习黑马的MySQL时,在主从复制、分库分表、读写分离等阶段需要多台服务器,于是尝试用docker创建镜像搭建主从复制环境。 本文基于centos7搭建mysql镜像。 参考大佬文章: link 编写mysql_file文件: 由于需要进行编辑操作,所以需要额外下载vim 编写run.sh文件 build MySQL镜像 以特权

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

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

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

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

    2024年02月08日
    浏览(40)
  • k8s搭建mysql集群实现主从复制

    名称 版本 操作系统 IP 备注 K8S集群 1.20.15 Centos7.9 192.168.11.21 192.168.11.22 192.168.11.23 21为k8s-master 22为k8s-node01 23为k8s-node02 MySql 5.7 Centos7.9 一主两从 nfs服务器 Centos7.9 192.168.11.24 共享目录为/nfs 11.24: 11.21/22/23(所有K8S节点): 11.21: 创建rbac 创建sc 启动: 11.21: 此文件定义了两个

    2024年02月15日
    浏览(24)
  • Docker搭建MySQL8.0主从复制(一主一从)

    宿主机使用的版本为 19045 的win10专业版,MySQL使用的是8.0+,Docker容器使用Linux。 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能,CMD中运行: “Docker Desktop Installer.exe” install --installation-dir= --installation-dir=path : changes the default installation location ( C:Program Fil

    2024年01月25日
    浏览(32)
  • 基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

    系统:Macbook M1 镜像版本:mysql:5.7 如果是要查 slave 连接不上 master 的问题,可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 本地数据卷挂载 因为mysql不挂载的话,重启丢失数据,所以在本地创建三个空的文件夹 conf、data、log 即可 部署mysql_master(主) 运行master容器 不加 -

    2024年02月10日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包