MySQL主从数据库简单搭建

环境:准备两个linux虚拟机服务器,两台需要安装相同版本的MySQL服务,此处示例使用的是 10.6.8-MariaDB MariaDB Server 版本,确保两台服务器可以ping通,检查防火墙是否关闭,或防火墙开启但对应数据库端口需要放开。

示例中选取 192.168.37.224作为主数据库,192.168.37.225作为从数据库。
由于示例中修改了默认端口,所以针对端口设置的部分,如果未修改使用默认端口3306,可不处理端口部分。

一、主数据库修改

1、编辑主服务器的配置文件:编辑数据库配置文件 vi my.cnf,检查如下配置

port=3310 # 指定端口
server-id=1  # 设置主服务器的唯一 ID
binlog-do-db=lmtest # 需要复制的数据库名
binlog-ignore-db=mysql # 忽略的不需要复制的数据库名
log-bin=mysql-bin # 开启二进制日志

2、重启 MySQL 服务:保存配置文件修改后,重启主服务器上的 MySQL 服务使更改生效。
3、创建用于从服务器复制的用户:在主服务器上创建一个用于主从复制的用户,并赋予 REPLICATION SLAVE 权限。

# 创建用户
CREATE USER 'replication_user'@'192.168.37.225' IDENTIFIED BY 'password';
# 授予权限
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'192.168.37.225';
# 刷新权限
FLUSH PRIVILEGES;

其中 replication_user 、password 替换成自己要修改的用户密码。

4、查看主服务器状态:使用以下命令查看主服务器状态,记录 File 和 Position 值,备用于从服务器配置。

SHOW MASTER STATUS;

示例如图:
在这里插入图片描述

5、个人踩的坑

  • 使用 SHOW MASTER STATUS;无信息展示
    在这里插入图片描述

当执行 SHOW MASTER STATUS; 命令时,如果展示为空,可能有几个原因导致这种情况发生:
1、未启用二进制日志(Binary Log):在MySQL中,要执行主从复制,主数据库必须启用二进制日志。如果主数据库的二进制日志未启用,那么执行 SHOW MASTER STATUS; 命令将不会显示任何内容。
2、主数据库未设置为主服务器(Master Server):确保当前连接的数据库实例是配置为主服务器的主数据库。如果当前数据库实例不是主服务器,那么执行 SHOW MASTER STATUS; 命令将不会显示任何内容。
3、权限问题:可能当前连接的用户没有足够的权限来执行 SHOW MASTER STATUS; 命令。请确保连接的用户具有足够的权限来查看主服务器的状态信息。
4、主服务器尚未生成任何二进制日志:如果主服务器还没有生成任何二进制日志,执行 SHOW MASTER STATUS; 命令也会返回空值。

首先检查了下二进制日志是否开启

# 是否开启二进制
SHOW VARIABLES LIKE 'log_bin';

off是未开启,on是开启
在这里插入图片描述
二进制日志未开启,又去检查了配置文件,配置文件中我直接将配置项放到了文件最后一行之后,调整了一下位置,重新启动数据库。

调整前:

# 第1、2行原先配置文件就有,在[mysqld]下
port=3310 # 指定端口
server-id=1  # 设置主服务器的唯一 ID
# 后三行我直接粘贴到文件最后,在[mysqld_safe]下
binlog-do-db=lmtest # 需要复制的数据库名
binlog-ignore-db=mysql # 忽略的不需要复制的数据库名
log-bin=mysql-bin # 开启二进制日志

调整后

# 全部放在[mysqld]下
port=3310 # 指定端口
server-id=1  # 设置主服务器的唯一 ID
binlog-do-db=lmtest # 需要复制的数据库名
binlog-ignore-db=mysql # 忽略的不需要复制的数据库名
log-bin=mysql-bin # 开启二进制日志

再次查询,二进制日志开启
在这里插入图片描述

二、从数据库修改

1、编辑从服务器的配置文件:编辑数据库配置文件 vi my.cnf,检查如下配置

server-id = 2  # 设置从服务器的唯一 ID,需确保与主服务器不同

2、重启 MySQL 服务:保存配置文件修改后,重启从服务器上的 MySQL 服务。
3、连接主服务器:连接到从服务器的 MySQL 实例,并配置其作为主服务器的从服务器。

CHANGE MASTER TO MASTER_HOST='192.168.37.224', MASTER_PORT=3310, MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='xxxx', MASTER_LOG_POS=xxx;
START SLAVE;

其中MASTER_LOG_FILE=‘xxxx’, MASTER_LOG_POS=xxx 为之前在主服务器查看的值。

4、查看从服务器状态:使用以下命令查看从服务器状态,确认从服务器已经开始复制主服务器的数据。

SHOW SLAVE STATUS\G;

在这里插入图片描述一般来说查看从服务器状态这两个字段为yes基本就是成功了。
\G按列展示。
在这里插入图片描述

5、个人踩的坑

  • 数据库连不上
    1、最初数据提示连接失败,由于我修改了默认端口号,而从服务器连接主服务器那一步又没有指定端口,导致服务器使用默认端口3306连接,从而提示连接失败。
    2、还有一种可能是,主服务器配置文件中有bind-address=127.0.0.1这行配置,这会限制数据库仅支持本地连接。

三、验证

1、在主数据库创建监听同步的数据库,建表,插入一条数据
2、观察从服务器数据库中是否出现相同内容,如果出现则简单搭建成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/753794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

到底什么时候该使用MongoDB

NoSQL是什么 NoSQL : Not Only SQL , 本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如 : sql 标准、 ACID 属性,表结构等。 NoSQL分类 类型应用场景典型产品Key-value存储缓存&…

考研数学|跟武忠祥,刷什么习题集效果最好?

选择听哪位老师的课程并不是硬性规定。我个人觉得,关键在于根据自己的学习需求和情况来选择合适的学习方式。比如如果听武忠祥老师的课程可能更适合你,你可以选择武忠祥老师;而如果你希望通过大量的题目练习来提高解题能力,那么选…

【Unity】Transform、Rigidbody、CharacterController移动

前言 在使用Unity开发的时候,移动是最最基础的一个需求,我来给大家简单的讲一下Unity中的几种常见的移动方法。 1.Transform移动 Transform移动就是修改物体的position ①修改位置 这里要注意:坐标分为世界坐标和本地坐标 //将物体的世界坐…

如何解决网络中IP地址发生冲突故障?

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。 1、个人IP地址冲突解决方案 首先winR,调出…

关于 闰年 的小知识,为什么这样判断闰年

闰年的规定&#xff1a; 知道了由来&#xff0c;我们就可以写程序来判断&#xff1a; #include <stdio.h> int main() {int year, leap;scanf("%d",&year);if((year%4 0 && year%100 ! 0) || year%400 0)leap 1;else leap 0;if(leap) printf(…

【Linux下qt软件安装打包附带问题: dpkg: error processing package xxxx +解决方式+自我尝试+记录】

【Linux下qt软件安装打包附带问题&#xff1a; dpkg: error processing package xxxx 解决方式自我尝试记录】 1、前言2、实验环境3、问题说明4、我的努力与查到解决的方式&#xff08;1&#xff09;补充两个文件&#xff0c;让软件正常执行&#xff08;2&#xff09;尝试修复d…

29.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-数据推测功能的算法实现

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;28.数据推测结果…

智慧公厕对于智慧城市管理的意义

近年来&#xff0c;智慧城市的概念不断被提及&#xff0c;而智慧公厕作为智慧城市管理的重要组成部分&#xff0c;其在监测、管理和养护方面发挥着重要的作用。智慧公厕不仅是城市市容提升的重要保障&#xff0c;还能提升城市环境卫生管理的质量&#xff0c;并有效助力创造清洁…

springBoot项目,无配置中心,怎么实现类似功能

实现EnvironmentPostProcessor import cn.hutool.http.HttpUtil; import org.springframework.boot.SpringApplication; import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.boot.env.YamlPropertySourceLoader; import org.springfr…

用electron将vue项目打包成.exe文件【保姆级教程】

用electron将vue项目打包成.exe文件【保姆级教程】 说明&#xff1a; vue2项目&#xff0c;使用的vue-element-admin框架&#xff0c;用electron打包成.exe文件。 1、新建一个文件夹&#xff0c;然后右键打开终端或者cd到这个目录。执行下面的命令&#xff08;最好确认一下gith…

c语言文件操作(中)

目录 1. 文件的顺序读写1.1 顺序读写函数1.2 顺序读写函数的原型和介绍 结语 1. 文件的顺序读写 1.1 顺序读写函数 函数名功能适用于fgetc字符输入函数所有输出流fputc字符输出函数所有输出流fgets文本行输入函数所有输出流fputs文本行输出函数所有输出流fscanf格式化输入函数…

AI+权重衰退

AI权重衰退 1权重衰退2代码实现 2丢弃法 1权重衰退 AI权重衰退是指在人工智能&#xff08;AI&#xff09;领域中的一种技术或方法&#xff0c;用于训练机器学习模型时对权重进行惩罚或调整&#xff0c;以避免过拟合现象的发生。 在机器学习中&#xff0c;过拟合是指模型在训练…

红队笔记7--Web机器为Linuxdocker逃逸

其实&#xff0c;不知道大家有没有想过&#xff0c;我们之前练习的都是web机器是windows的版本&#xff0c;但是其实&#xff0c;在现实生活中&#xff0c;服务器一般都是Linux的版本&#xff0c;根本不可能用到windows的版本 那么如果是Linux的话&#xff0c;我们就有很多的困…

恒创科技:什么是BGP线路服务器?BGP机房的优点是什么?

在当今的互联网架构中&#xff0c;BGP(边界网关协议)线路服务器和BGP机房扮演着至关重要的角色。BGP作为一种用于在自治系统(AS)之间交换路由信息的路径向量协议&#xff0c;它确保了互联网上的数据能够高效、准确地从一个地方传输到另一个地方。那么&#xff0c;究竟什么是BGP…

车载电子电器架构 - 网络拓扑

车载电子电器架构 - 网络拓扑 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…

单点登录:一把钥匙开启所有门

单点登录&#xff08;SSO&#xff09;技术&#xff0c;就像是一把开启企业数字化大门的钥匙&#xff0c;让用户一次登录&#xff0c;随处访问&#xff0c;极大地提升了工作效率和用户体验。具体到技术实现上&#xff0c;当用户首次登录时&#xff0c;SSO系统会进行认证&#xf…

Linux权限维持后门及应急响应

本次应急响应实验用kali和centos7来充当攻击机和靶机 kali&#xff1a;192.168.10.130 centos7&#xff1a;192.168.10.155 前提&#xff1a; 用kali连接到centos7上面ssh root192.168.10.155 一、SSH软链接 任意密码登录即可发现程度&#xff1a;|||||| ln -sf /usr/sbi…

CCleaner清理软件好不好 CCleaner怎么清理运行内存

CCleaner是一款使用简单&#xff0c;功能强大的电脑清理软件&#xff0c;该软件价格低廉&#xff0c;即使是学生也可以承担。那么这个软件究竟怎么样&#xff1f;可以怎么使用呢&#xff1f;下面就来带大家看一看CCleaner清理软件好不好&#xff0c;CCleaner怎么清理运行内存。…

Java-SpringAop 编程式事物实现

SpringAop 编程式事物实现 1. 数据库事物特性 原子性 多个数据库操作是不可分割的&#xff0c;只有所有的操作都执行成功&#xff0c;事物才能被提交&#xff1b;只要有一个操作执行失败&#xff0c;那么所有的操作都要回滚&#xff0c;数据库状态必须回复到操作之前的状态 …

redis-操作数据库

0 序言 一个Redis服务器可以包含多个数据库。在默认情况下&#xff0c;Redis服务器在启动时将会创建16个数据库&#xff1a;这些数据库都使用号码进行标识&#xff0c;其中第一个数据库为0号数据库&#xff0c;第二个数据库为1号数据库&#xff0c;而第三个数据库则为2号数据库…