MySQL技术内幕1:内容介绍+MySQL编译使用介绍

文章目录

    • 1.整体内容介绍
    • 2.下载编译流程
      • 2.1 安装编译工具和依赖库
      • 2.2 下载编译
    • 3.配置MySQL
      • 3.1 数据库初始化
      • 3.2 编辑配置文件
      • 3.3 启动停止MySQL
      • 3.4 登录并修改密码

1.整体内容介绍

MySQL技术系列文章将从MySQL下载编译,使用到MySQL各组件使用原理+源码分析,采用自底向上,从整体到局部的方式来进行详细分析(从MySQL系统概述到存储管理,再到索引,查询编译,事务,并发,安全,复制和分布式相关内容)。本篇为第一篇,也就是环境准备篇,以此环境为基础来进行后续的介绍。

2.下载编译流程

现在应用比较多的新版本是8.x.x,所以采用8.0.33版本来进行源码的分析。

2.1 安装编译工具和依赖库

sudo apt update
sudo apt install -y cmake gcc g++ make libncurses-dev libssl-dev libboost-all-dev libbz2-dev  pkg-config  libldap2-dev libsasl2-dev

2.2 下载编译

cmake ..  \
-DCMAKE_INSTALL_PREFIX=/home/xxx/openSource/DataBase/mysql/install  \
-DMYSQL_DATADIR=/home/xxx/openSource/DataBase/mysql/data  \
-DWITH_BOOST=../boost \
-DSYSCONFDIR=/home/xxx/openSource/DataBase/mysql/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ 
-DWITH_READLINE=1  \
-DWITH_DEBUG=1   \
-DENABLED_LOCAL_INFILE=1 \ 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 
-DDEFAULT_CHARSET=utf8mb4  \
-DDEFAULT_COLLATION=utf8mb4_general_ci \ 
-DMYSQL_TCP_PORT=3306   \
-DWITH_SSL=system 参数详解:
-DCMAKE_INSTALL_PREFIX      //安装目录
-DSYSCONFDIR                //配置文件目录(默认可以不安装配置文件)
-DMYSQL_DATADIR                   //数据存储目录
-DWITH_BOOST                          //boost目录
-DINSTALL_MANDIR                 //帮助文档 
-DMYSQL_TCP_PORT                //默认端口号
-DMYSQL_UNIX_ADDR             //sock文件位置
-DDEFAULT_CHARSET              //默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS                //扩展的字符集支持所有的
-DDEFAULT_COLLATION         //默认字符集为utf8;默认校对规则为utf8_general_ci
-DWITH_READLINE                   //上下翻历史命令
-DWITH_SSL                              //ssl路径,可以使用系统的system,也可以使用自己编译的指定路径下的
-DWITH_EMBEDDED_SERVER //编译并启用嵌入式MySQL服务器
-DENABLED_LOCAL_INFILE     //从本地导入数据
-DWITH_INNOBASE_STORAGE_ENGINE    //编译InnoDB存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE       //编译ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE //编译BLACKHOLE引擎
-DWITH_DEBUG                      //debug版本
#编译安装
make -j8 && make install

过程中可能出现的问题:
1)CMake Error at CMakeLists.txt:1374 (MESSAGE):Please install the patchelf(1) utility:直接注释掉cmakefile中对应的检查即可。
2)undefined reference to `EVP_aes_128_cfb1’:OpenSSL 库版本不兼容或配置不正确。

# 下载 OpenSSL 源码
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w# 配置并编译
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
sudo make install# 更新库路径
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig# 验证安装
/usr/local/openssl/bin/openssl version
#更新cmake参数,清理后编译
-DWITH_SSL=/usr/local/openssl

3.配置MySQL

3.1 数据库初始化

cd ~/openSource/DataBase/mysql/install   # 指定的安装路径
sudo bin/mysqld --initialize --user=xxx --basedir=/home/xxx/openSource/DataBase/mysql/install --datadir=/home/xxx/openSource/DataBase/mysql/data/

此时会生成临时密码,后面可以在日志中查找,也可以在这记录一下。
在这里插入图片描述

3.2 编辑配置文件

指定的配置文件路径下去编辑:vim

/home/xxx/openSource/DataBase/mysql/etc/my.cnf
[mysqld]
basedir=/home/xxxx/openSource/DataBase/mysql/install
datadir=/home/xxxx/openSource/DataBase/mysql/data
socket=/tmp/mysql.sock
user=mysql[client]
socket=/tmp/mysql.sock

3.3 启动停止MySQL

/home/xxx/openSource/DataBase/mysql/install/support-files/mysql.server start
/home/xxx/openSource/DataBase/mysql/install/support-files/mysql.server stop

3.4 登录并修改密码

./bin/mysql -u root -p

输入临时密码后登录成功
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的新密码’;
在这里插入图片描述
以上就完成了MySQL的编译安装和配置,可以使用其进行调试了。

原文链接

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

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

相关文章

MySQL 事务详解

MySQL 事务详解 一、事务是什么?为什么需要事务? 二、事务的四大特性(ACID)举例说明:转账操作 三、MySQL 中事务的支持四、事务分类:隐式 vs 显式1. 隐式事务(自动提交)2. 显式事务&…

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…

利用coze工作流制作一个自动生成PPT的智能体

在Coze平台中,通过工作流实现PPT自动化生成是一个高效且灵活的解决方案,尤其适合需要快速产出标准化演示文稿的场景。以下是基于Coze工作流制作PPT的核心逻辑与操作建议: 理论流程 一、核心流程设计 需求输入与解析 用户输入:主…

vue3 按钮级别权限控制

在Vue 3中实现按钮级别的权限控制,可以通过多种方式实现。这里我将介绍几种常见的方法: 方法1:使用Vue 3的Composition API 在Vue 3中,你可以使用Composition API来创建一个可复用的逻辑来处理权限控制。 创建权限控制逻辑 首…

spa首屏加载慢怎样解决

SPA(Single Page Application,单页应用)首屏加载慢是一个常见问题,主要原因通常是首次加载需要拉取体积较大的 JavaScript 文件、样式表、初始化数据等。以下是一些常见的 优化策略,可以帮助你 提升首屏加载速度&#…

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…

NTT印地赛车:数字孪生技术重构赛事体验范式,驱动观众参与度革命

引言&#xff1a;数字孪生技术赋能体育赛事&#xff0c;开启沉浸式观赛新纪元 在传统体育赛事观赛模式遭遇体验天花板之际&#xff0c;NTT与印地赛车系列赛&#xff08;NTT INDYCAR SERIES&#xff09;的深度合作&#xff0c;通过数字孪生&#xff08;Digital Twin&#xff09…

解构与重构:PLM 系统如何从管理工具进化为创新操作系统?

在智能汽车、工业物联网等新兴领域的冲击下&#xff0c;传统产品生命周期管理&#xff08;PLM&#xff09;系统正在经历前所未有的范式转换。当某头部车企因 ECU 软件与硬件模具版本失配导致 10 万辆智能电车召回&#xff0c;损失高达 6 亿美元时&#xff0c;这场危机不仅暴露了…

【Ubuntu 16.04 (Xenial)​​】安装docker及容器详细教程

Ubuntu 16.04 安装docker详细教程 一、docker安装1.1 前期准备1.2 使用 Docker 官方安装脚本安装&#xff08;推荐&#xff09; 查看ubuntu版本&#xff1a;lsb_release -a 这里我的系统是 ​​Ubuntu 16.04 (Xenial)​​&#xff0c;在 ​​Ubuntu 16.04 (Xenial)​​ 上安装…

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…

MySQL:InnoDB架构(内存架构篇)

目录 0.前置知识 0.1二级索引的概念 二级索引查询原理 1.整体架构 1.1为什么innoDB的架构会分为两个部分? 2.内存架构 2.1BufferPool 2.2ChangeBuffer 唯一性检查不是实时性会出现的问题? ChangeBuffer的优势 2.3Adaptive Hash Index 2.4LogBuffer 0.前置知识 0.…

鹰盾加密器“一机一码”技术全维度剖析:从底层实现到生态防护体系

“一机一码”加密技术的深度解析与实现路径 引言 在数字内容版权保护和软件授权管理领域&#xff0c;“一机一码”技术作为一种重要的安全防护手段&#xff0c;能够有效防止授权码滥用和非法传播。它通过建立设备与授权码的唯一对应关系&#xff0c;确保每份授权仅在特定设备…

Android 中使用 OkHttp 创建多个 Client

在 Android 开发中&#xff0c;有时我们需要创建多个 OkHttpClient 实例来满足不同的网络请求需求。以下是创建和管理多个 OkHttpClient 的方法&#xff1a; 基本创建方式 // 创建默认的 OkHttpClient val defaultClient OkHttpClient()// 创建带有自定义配置的 Client val …

C++中的跳转语句

C中的跳转语句包括break、continue和goto&#xff0c;它们用于改变程序的正常执行流程。下面分别介绍它们的作用、使用场景和注意事项&#xff1a; 1. break 作用&#xff1a; • 立即终止当前所在的循环&#xff08;for、while、do while&#xff09;或switch语句&#xff…

AI在网络安全领域的应用现状和实践

当前&#xff0c;人工智能技术已深度融入网络安全产品&#xff0c;推动传统防御模式向智能化、自适应方向加速演进。各安全厂商通过机器学习、深度学习与知识图谱等技术的融合应用&#xff0c;提高安全产品在威胁检测、攻击溯源、风险评估等场景的能力跃迁&#xff0c;突破传统…

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…

Spark 之 DataFrame 开发

foreachPartition val data = spark.sparkContext.parallelize(1 to 100)// 使用 foreachPartition 批量处理分区 data.foreachPartition {partitionIterator =

UDP:简洁高效的报文结构解析与关键注意事项

UDP&#xff08;User Datagram Protocol&#xff09;以其无连接、低开销的特性&#xff0c;成为实时应用&#xff08;如视频、游戏、DNS&#xff09;的首选传输协议。深入理解其报文结构和注意事项&#xff0c;是高效利用UDP的基础。 一、UDP报文结构&#xff1a;简洁的四段式 …

Cursor 工具项目构建指南:让 AI 审查 AI 生产的内容,确保生产的内容质量和提前发现问题

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 Cursor 工具项目构建指南:让 AI 审查 AI 生产的内容,确保生产的内容质量和提前发现问…