MariaDB单机多实例的配置方法

news2024/10/6 14:36:14

1、什么是数据库的单机多实例

数据库的单机多实例是指在一台物理服务器上运行多个数据库实例。这种部署方式允许多个数据库实例共享相同的物理资源,如CPU、内存和存储,从而提高硬件利用率并降低成本。每个数据库实例可以独立运行,处理不同的业务或应用程序,并且可以配置独立的数据目录、端口和用户权限等。
通俗点讲,就是把“一套数据库撕成几半,分别独立使用”。

2、在debian12系统配置MariaDB多实例步骤

(1)在配置好软件仓库源的情况下,通过命令“apt install mariadb-server”安装MariaDB数据库,或者通过二进制编译方式安装也可;
(2)通过命令“systemctl stop mariadb”关闭MariaDB进程;
(3)通过命令“mkdir -p /data/mariadb/{3307,3308}/etc”创建两个数据库实例的目录,这个目录可以根据实际需求进行改变,此处创建的3307和3308两个目录对应实例,后续将分别使用3307和3308两个端口;
(4)通过命令“chown -R mysql:mysql /data/mariadb/”将相关数据库实例目录的属主和属组设置为mysql(在通过包管理器安装MariaDB/MySQL完成后,系统会自动创建名为mysql的属主和属组);
(5)通过命令“mysql_install_db --datadir=/data/mariadb/3307/data --user=mysql --basedir=/usr”和“mysql_install_db --datadir=/data/mariadb/3308/data --user=mysql --basedir=/usr”分别在两个实例目录下生成数据库所需的相关文件;
在这里插入图片描述
在这里插入图片描述
(6)通过命令“touch /data/mariadb/3307/etc/my.cnf”和“touch /data/mariadb/3308/etc/my.cnf”在两个实例目录下生成对应的配置文件,并通过vim工具填写相关配置文件的内容,其中3307目录下的配置文件如下:

[mysqld]
port=3307
datadir=/data/mariadb/3307/data
socket=/data/mariadb/3307/mysql.socket

[mysqld_safe]
log-error=/data/mariadb/3307/mariadb.err.log
pid-file=/data/mariadb/3307/mariadb.pid

3308目录下的配置文件如下:

[mysqld]
port=3308
datadir=/data/mariadb/3308/data
socket=/data/mariadb/3308/mysql.socket

[mysqld_safe]
log-error=/data/mariadb/3308/mariadb.err.log
pid-file=/data/mariadb/3308/mariadb.pid

(7)分别使用以下命令启动3307和3308两个数据库实例:

mysqld_safe --defaults-file=/data/mariadb/3307/etc/my.cnf --basedir=/usr &
mysqld_safe --defaults-file=/data/mariadb/3308/etc/my.cnf --basedir=/usr &

在这里插入图片描述
(8)通过命令“netstat -anput | grep mariadb”检查相关数据库实例的进程;
在这里插入图片描述
(9)分别使用以下命令登录3307和3308两个数据库实例:

mysql -u root -S /data/mariadb/3307/mysql.socket
mysql -u root -S /data/mariadb/3308/mysql.socket

在这里插入图片描述
mysql.socket是MariaDB/MySQL数据库启动成功后自动生成的套接字文件,用于接收客户端的连接,若将数据库实例关闭,此文件也将默认消失。

(10)最后按照实际需求初始化相关实例,如果要关闭相关数据库的实例,可使用命令“kill <对应实例的pid>”。

3、常见报错和解决方法

3.1、执行“mysql_install_db”进行数据库实例初始化时,反馈报错信息“FATAL ERROR: Could not find my_print_defaults”

相关报错信息如下图所示:
在这里插入图片描述
从上图看,执行“mysql_install_db”命令时,带有“--basedir”参数,这个参数指向MariaDB数据库的安装目录,通过“--basedir”参数,mysql_install_db命令会在MariaDB安装目录下寻找名为“my_print_defaults”的文件(此文件在MariaDB安装目录下默认存在),而如果“--basedir”参数没有指向正确的安装路径,则mysql_install_db命令找不到my_print_defaults文件,最终导致数据库实例无法安装成功。
因为MariaDB不同的安装方式会导致安装目录不同,如果想查明安装目录,则可以取巧使用“find / -name my_print_defaults”命令来查明MariaDB的安装目录。

4、数据库单机多实例的优缺点总结

通过配置和管理多个数据库实例,可以实现以下优点:

  • 资源共享:多个实例可以共享服务器的硬件资源,提高资源利用率,降低硬件成本;
  • 独立性:每个实例可以有独立的配置和数据存储,互不影响,提高了系统的稳定性和可靠性;
  • 可扩展性:根据业务需求,可以动态增加或减少实例数量,方便系统扩展和伸缩;
  • 灵活性:可以针对不同业务需求进行实例的配置和管理,满足各种场景的需求。

然而,单机多实例也需要注意一些问题,通常情况下,缺点如下:

  • 资源竞争:数据库实例之间共享同一物理资源,实例和实例之间在承担读写请求的过程中容易造成服务器硬件资源的抢夺;
  • 灾备较为局限:通常情况下,数据库多实例往往是服务器资源不足的情况下才会被考虑使用的部署方式,而建立灾备节点往往需要单独的服务器资源,因此在实际的实施过程中,应当平衡好有限的硬件资源和数据灾备之间的关系。

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

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

相关文章

ElementUI的Table组件行合并上手指南

ElementUI的Table组件行合并 &#xff0c;示例用官网vue3版的文档 <el-table :data"tableData" :span-method"objectSpanMethod" border style"width: 100%; margin-top: 20px"><el-table-column prop"id" label"ID&qu…

uniapp项目如何引用安卓原生aar插件(避坑指南三)

官方文档说明&#xff1a;uni小程序SDK 1.第一步在uniapp项目下&#xff0c;创建一个nativeplugins目录&#xff0c;目录下面创建插件名称&#xff0c;这里以abcModule为例子&#xff0c;在此目录下创建android目录&#xff0c;把aar放androidd目录下&#xff0c;同时创建libs…

低代码选型注意事项

凭借着革命性的生产力优势&#xff0c;低代码技术火爆了整个IT圈。面对纷繁复杂的低代码和无代码产品&#xff0c;开发者该如何选择&#xff1f; 在研究低代码平台的年数上&#xff0c;本人已有3年&#xff0c;也算是个低代码资深用户了&#xff0c;很多企业面临低代码选型上的…

探究Android DreamService的梦幻世界

探究Android DreamService的梦幻世界 引言 DreamService的概述 在Android开发中&#xff0c;DreamService是一种特殊类型的服务&#xff0c;它可以用于创建梦幻世界的屏保应用。梦幻世界是一种用户界面显示模式&#xff0c;当设备进入空闲状态时&#xff0c;系统会自动启动D…

【网络安全 | 指纹识别工具】WhatWeb使用详析

前言 WhatWeb 是一款用于识别 Web 应用程序和 Web 服务器的开源工具。它可以识别网站使用的编程语言、Web 框架、Web 服务器软件、Web 应用程序等信息&#xff0c;从而帮助安全测试人员快速了解目标网站的技术特征&#xff0c;发现可能存在的漏洞。 本文将对 WhatWeb 的使用方法…

获取Android和iOS崩溃日志的方法

文章目录 一、Android崩溃日志1、获取方法1.1 通过adb logcat获取1.2 通过adb shell dumpsys dropbox命令获取 2、导出设备Crash日志3、导出设备ANR日志4、常见日志类别 二、iOS崩溃日志1、获取方法1.1 xcode中打开1.2 手机上直接获取 2、Crash 头部信息 一、Android崩溃日志 …

redis中根据通配符删除key

redis中根据通配符删除key 我们是不是在redis中keys user:*可以获取所有key&#xff0c;但是 del user:*却不行这里我提供的命令主要是SCANSCAN 0 MATCH user:* COUNT 100使用lua保证原子性 SCAN参数描述 在示例中&#xff0c;COUNT 被设置为 100。这是一个防止一次性获取大…

Linux安装GitLab教程

Linux安装GitLab教程 1、配置yum源 相当于新建一个文件&#xff0c;通过这个文件来安装gitlab vim /etc/yum.repos.d/gitlab-ce.repo 把这些配置粘进去 [gitlab-ce] nameGitlab CE Repository baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gp…

Ubuntu安装K8S的dashboard(管理页面)

原文网址&#xff1a;Ubuntu安装k8s的dashboard&#xff08;管理页面&#xff09;-CSDN博客 简介 本文介绍Ubuntu安装k8s的dashboard&#xff08;管理页面&#xff09;的方法。 Dashboard的作用有&#xff1a;便捷操作、监控、分析、概览。 相关网址 官网地址&#xff1a;…

Redis6.0 Client-Side缓存是什么

前言 Redis在其6.0版本中加入了Client-side caching的支持&#xff0c;开启该功能后&#xff0c;Redis可以将指定的key-value缓存在客户端侧&#xff0c;这样当客户端发起请求时&#xff0c;如果客户端侧存在缓存&#xff0c;则无需请求Redis Server端。 Why Client-side Cac…

C语言实验1:C程序的运行环境和运行C程序的方法

一、算法原理 这是学C语言的入门&#xff0c;并不需要很高深的知识&#xff0c;一个hello world 或者一个简单的加法即可 二、实验要求 了解所用的计算机系统的基本操作方法&#xff0c;学会独立使用该系统。 了解在该系统上如何编辑、编译、连接和运行一个C程序。 通过运…

macOS系统下载安装PyCharm社区版本的流程(详细)

第一步 进入PyCharm官网 链接&#xff1a;Get Your Educational Tool - JetBrains 第二步 选择下拉框&#xff0c;根据自己的电脑芯片选择下载版本 电脑芯片的查看位置&#xff1a;设置-通用-关于本机。选择完版本再点击Download按钮 -- 第三步 下载完以后在右上角打开文件&…

AGV智能搬运机器人-替代人工工位让物流行业降本增效

在当今快速发展的世界中&#xff0c;物流业面临着巨大的挑战&#xff0c;包括提高效率、降低成本和优化工作流程。为了应对这些挑战&#xff0c;一种新型的自动化设备——智能搬运机器人正在崭露头角。本文将通过一个具体的案例来展示富唯智能转运机器人在实际应用中的价值。 案…

uniApp中uView组件库的丰富布局方法

目录 基本使用 #分栏间隔 #混合布局 #分栏偏移 #对齐方式 API #Row Props #Col Props #Row Events #Col Events UniApp的uView组件库是一个丰富的UI组件库&#xff0c;提供了各种常用的UI组件和布局方法&#xff0c;帮助开发者快速构建美观、灵活的界面。下面给你写一…

第2课 用FFmpeg读取rtmp流并显示视频

这节课我们开始利用ffmpeg和opencv来实现一个rtmp播放器。播放器的最基本功能其实就两个:显示画面和播放声音。在实现这两个功能前&#xff0c;我们需要先用ffmpeg连接到rtmp服务器&#xff0c;当然也可以打开一个文件。 1.压缩备份上节课工程文件夹为demo.rar&#xff0c;并修…

网站显示不安全警告怎么办?消除网站不安全警告超全指南

网站显示不安全警告怎么办&#xff1f;当用户访问你的网站&#xff0c;而您的网站没有部署SSL证书实现HTTPS加密时&#xff0c;网站就会显示不安全警告&#xff0c;这种警告&#xff0c;不仅有可能阻止用户继续浏览网站&#xff0c;影响网站声誉&#xff0c;还有可能影响网站在…

视频格式网络地址转换视频到本地,获取封面、时长,其他格式转换成mp4

使用ffmpeg软件转换网络视频&#xff0c;先从官网下载对应操作系统环境的包 注意:网络地址需要是视频格式结尾&#xff0c;例如.mp4,.flv 等 官网地址&#xff1a;Download FFmpeg window包&#xff1a; linux包&#xff1a; 如果下载缓慢&#xff0c;下载迅雷安装使用…

RabbitMQ核心概念记录

本文来记录下RabbitMQ核心概念 文章目录 什么叫消息队列为何用消息队列RabbitMQ简介RabbitMQ基本概念RabbitMQ 特点具体特点包括 Rabbitmq的工作过程RabbitMQ集群RabbitMQ 的集群节点包括Rabbit 模式大概分为以下三种单一模式普通模式镜像模式 本文小结 什么叫消息队列 消息&am…

Spring 是如何解决循环依赖问题的方案

文章目录 Spring 是如何解决循环依赖问题的&#xff1f; Spring 是如何解决循环依赖问题的&#xff1f; 我们都知道&#xff0c;如果在代码中&#xff0c;将两个或多个 Bean 互相之间持有对方的引用就会发生循环依赖。循环的依赖将会导致注入死循环。这是 Spring 发生循环依赖…

基于Docker的软件环境部署脚本,持续更新~

使用时CtrlF搜索你想要的环境&#xff0c;如果没有你想要的环境&#xff0c;可以评论留言&#xff0c;会尽力补充。 本文提供的部署脚本默认参数仅适合开发测试&#xff0c;请根据实际情况调节参数。 数据库 MySQL version: 3.9 services:mysql:image: mysql:8.0.35container…