【Innodb阅读笔记】之 本地搭建多个MYSQL

ops/2024/12/14 0:15:39/

一、背景      

        在开展工作与学习任务的进程中,时常会涉及到运用多个 MySQL 实例执行特定操作的需求。例如,在深入研习主从复制机制时,借助多个 MySQL 实例能够更为直观地观察数据的传输与同步过程,有效加深对其原理及应用场景的理解。同时,于数据库备份工作方面,利用多个实例可以灵活地制定备份策略,实现全量备份与增量备份的有机结合,从而确保数据的安全性与完整性,提升数据管理的可靠性与高效性。

        然而,现实状况往往是我们手头通常并没有多个独立的服务器资源可供使用,在此情形下,于本地搭建多个 MySQL 服务便成为了满足上述需求的关键举措与有效途径。

二、实践,创建一个端口为 3316 的 MYSQL服务

1、复制 mysql 的安装目录

        在 D 盘的 ProgramData 文件夹下的 innodb1 子目录之中,有 2 个文件目录,其中 MySQL 是复制过来的 MYSQL 安装实例而得到的一个副本,它完整保留了 MySQL 安装后的基本架构与相关文件。 mysql_data 是一个空文件夹,用来存放 MySQL 数据。

        而对于配置文件 my.ini,存放在复制过来的 MYSQL 安装实例里面。

2. 修改 my.ini 配置文件

3、命令创建第二个服务

以管理员的身份打开命令行窗口,到安装目录的bin目录下,输入如下命令创建第二个 MySQL 服务

# 切换目录 
C:\windows\system32>cd D:\ProgramData\innodb1\MySQL\bin# 创建服务名称为:mysql_test 的服务
#  --defaults-file 指定默认配置文件的位置为:D:/ProgramData/innodb1/MySQL/my.ini
mysqld install mysql_test --defaults-file="D:/ProgramData/innodb1/MySQL/my.ini"

4. 初始化服务

D:\ProgramData\innodb1\MySQL\bin>mysqld --initialize  --console
2024-12-12T02:36:39.638445Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-12-12T02:36:39.638507Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2024-12-12T02:36:40.517393Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-12-12T02:36:40.627090Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-12-12T02:36:40.702020Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: eafb237d-b831-11ef-b8c9-489ebd25cd12.
2024-12-12T02:36:40.707212Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-12-12T02:36:41.023536Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2024-12-12T02:36:41.023799Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2024-12-12T02:36:41.024932Z 0 [Warning] CA certificate ca.pem is self signed.
2024-12-12T02:36:41.112110Z 1 [Note] A temporary password is generated for root@localhost: DA%q&jl_-7(1
# 注意最后一行 A temporary password is generated for root@localhost: kDL1r,gw3;ul
# 其中 DA%q&jl_-7(1 为 root 初始化密码

初始化完成后,可以看一下 mysql_data 文件,我们发现数据已经初始化完成

5. 打开任务管理器切换到服务,查找到名称为 mysql_test 的服务并启动

6. 登录 mysql 并修改密码

# 登录密码为初始化最后一行:DA%q&jl_-7(1
D:\ProgramData\innodb1\MySQL\bin>mysql -P3316 -uroot -p
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19-logCopyright (c) 2000, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.# 修改 root 密码为 root
mysql> ALTER USER root@localhost IDENTIFIED  BY 'root';
Query OK, 0 rows affected (0.00 sec)

        到此,我们的另外一个服务器就搭建好了,在工作与学习过程中,为满足如主从复制学习、数据库备份等多样化需求,常常需要搭建多个 MySQL 服务。通过本次实践操作,对整个搭建流程及相关要点有了较为清晰的认识与深刻体会。


http://www.ppmy.cn/ops/141665.html

相关文章

SpringBoot启动执行操作实现

伴随SpringBoot启动执行操作实现方式总结 引言方案使用EventListener监听使用ApplicationRunner 或者CommandLineRunner接口使用Spring Bean初始化方法使用Async注解Async 的主要效果和特性 使用SmartLifecycle接口 总结 引言 在实际项目中,经常需要在当项目启动的…

JavaScript 写css的内联样式

一、使用style属性-直接设置单个 CSS 属性 // 获取元素 var element document.getElementById("myElement");// 设置样式 element.style.color "red"; element.style.backgroundColor "blue"; element.style.fontSize "20px"; 二…

Qt源码阅读(六) ⏱️QTimer

Qt源码阅读(六) ⏱️QTimer Qt 为我们提供了一个非常实用的定时器(QTimer),而在标准库中却没有类似的通用定时器。网络上有很多文章教你如何实现一个定时器,但本着就近原则,今天我们将深入阅读 Qt 中 QTimer 的源码&a…

spring boot之@Import注解的应用

我们知道spring boot会通过ComponentScan定义包扫描路径进行业务定义的bean的加载,但是对于很多不在此包路径下定义的bean怎么办呢?比如其他jar包中定义的。这时候import就发挥作用了,通过它也可以实现bean的定义。具体是怎么做的呢&#xff…

ubuntu22.04安装precice2.1.1出现的bug(涉及到openfoam7、dealii9.2.0)

安装爆轰案例: 1.openfoam7(成功) 验证:of7 、 blockMesh 2.blastfoam2.0.0成功 验证:of、 blastfoam 安装上面则运行Fluid案例成功 3.mpi 成功 验证:mpirun -np 2 hostname 4.openfoam-adapterv1.2.3 位置/home/jie/myap…

如何使用 Python 发送 HTTP 请求?

在Python中发送HTTP请求最常用的库是requests,它提供了简单易用的API来发送各种类型的HTTP请求。 除此之外,还有标准库中的http.client(以前叫做httplib)和urllib,但它们相对更底层,代码量较大&#xff0c…

嵌入式驱动开发详解14(SPI驱动架构实现)

文章目录 前言SPI简介SPI介绍SPI工作模式SPI特点 驱动开发驱动架构SPI控制器驱动SPI设备驱动SPI 设备和驱动匹配过程SPI其他相关API函数 参考文献 前言 SPI 是很常用的串行通信协议,可以通过 SPI 来连接众多的传感器,相比 I2C 接 口,SPI 接口…

Python 程序与 Java 系统集成:通过 FastAPI 实现 HTTP 接口

要将你的 Python 程序封装为一个 API 服务,使得前后端 Java 系统能够通过 HTTP 调用,你可以使用 FastAPI 框架来实现。这是一个现代的、快速的 Web 框架,特别适合用于构建 APIs。FastAPI 支持自动生成 OpenAPI 文档,且性能非常高&…