源码编译安装MySQL

ops/2024/12/15 5:54:12/

MySQL相应版本的tar包下载

在5.7的版本的MySQL编译安装的时候,需要依赖C语言的库文件【boost】,

如上图所示,如果你使用第一个MySQL的tar包,还需要去网上去下载boost即C语言的库文件,但是第二个tar包就既包含MySQL的源码包也包含这个C语言的boost库文件。

规划:

数据目录   /mysql/data  逻辑卷

二进制日志  /mysql/log  

至少准备三块盘,一块盘是启动分区和根分区来使用,

一块盘是数据目录来使用,

一块盘是二进制日志来使用

阿帕奇是一个用C语言编写的软件所以在编译安装阿帕奇的时候,需要使用gcc来源码编译这个阿帕奇软件才可以。

但是同样是用C语言编写的MySQL软件,就需要在编译安装的使用使用cmake来编译安装这个软件。但是cmake软件是用C语言编写的,所以cmake工作的时候还需要使用gcc软件来进行编译的操作。

1.规划数据目录,二进制日志目录:

规划数据目录

如上图所示,这是在规划使用名叫/mysql/data的逻辑卷来作为源码编译MySQL软件时的数据目录。

如上图所示,这是在创建/mysql/data/和/mysql/log/这两个数据目录。然后我们需要将之前创建的/dev/mysql/data这个逻辑卷挂载到/mysql/data/,

随后去编辑/etc/fstab文件,然后使用mount -a去检测/etc/fstab文件是否出错。

如上图所示,这是逻辑卷/dev/mysql/data/挂载到/mysql/data,并且这个逻辑卷的文件格式是ext4

规划二进制日志目录

如上图所示,这是格式化整块磁盘,给这个磁盘设置ext4的文件系统。

如上图所示,这是编辑/etc/fstab文件,将格式化之后的/dev/sdc挂载到/mysql/log/

随后使用mount -a去检测/etc/fstab文件中的内容是否出错。

如上图所示,规划的数据目录和日志目录就准备好了。

ext4文件系统的块设备首次挂载时候的注意事项。

如上图所示,当文件系统为ext4的块设备首次挂载到机器目录上时,会在这个机器目录下自动生成一个lost+found的目录,这个目录必须删除,因为MySQL要求它的数据目录和日志目录下必须是个空目录,不然会影响MySQL的正常启动。

2.如果当前的环境中有mariadb的软件,就把它卸载掉。

如上图所示,这就是在Linux操作系统中查看是否有mariadb的相关软件,如果有,就使用rpm -e --nodeps将这个软件卸载掉。

3.创建mysql的用户,将MySQL的数据目录和日志目录的属主和属组修改mysql

[root@mysql-server ~]# source /etc/profile
[root@mysql-server ~]#

如上图所示,是重新加载并应用 /etc/profile 文件中定义的环境变量和函数,使得这些配置立即生效于当前shell会话。这个文件包含了系统级别的环境变量设置,它对所有用户都有效,并且当用户首次登录时会被自动执行。

在创建用户之前执行 source /etc/profile 操作可以确保当前shell会话中的环境变量是最新的,并且任何最近对 /etc/profile 文件所做的更改都会被应用到即将进行的操作环境中。这对于保证接下来的命令(如创建新用户)在一个正确配置的环境下执行是非常重要的。

如上图所示,这是将MySQL的数据目录和日志目录的属主和属组都修改为MySQL。

useradd -s /sbin/nologin -M mysql
useradd: 用于创建新用户。
-s /sbin/nologin: 指定新用户的默认shell为/sbin/nologin,这意味着该用户不能登录到系统。
-M: 不创建用户的主目录【不创建用户的家目录】。
mysql: 新用户的用户名。
这条命令的作用是创建一个名为mysql的新用户,该用户不能登录到系统,并且没有主目录。

通过这种方式【创建mysql用户的时候,既不创建这个用户的家目录也不使得这个用户能够登录系统,】,可以确保 mysql 用户仅用于运行 MySQL 服务,而不会被用于其他目的【这对于安全性有了一些保证】。

4.编译安装mariadb的一些预处理工作。

对mariadb的tar包的处理

如上图所示,这是对mariadb的tar的解压。

这个boost中就包含了mariadb的C语言库文件

安装编译工具cmake

如上图所示,这是先安装gcc再安装cmake的软件。

5.配置MySQL安装参数

如上图所示,这是编译安装MySQL的时候,配置MySQL安装参数,

如上图所示,这就是这个错误1的解决方法。

如上图所示,这个以.txt结尾的文件记录着报出的错误,当你解决一次报错,就需要手动删除一次这个文件,不然下次还是会报出一样的错误。

然后解决完报错以后再次执行cmake的命令,去配置MySQL安装参数。

如上图所示,这个报错显示cmake编译器的内部错误,

如上图所示,相应去解决cmake编译器产生的内部错误就去安装如上图所示的三个软件组,以保证当前系统有cmake所需要的开发环境。

如上图所示,这是去查看当前系统的rpm源中有哪些软件组,这些软件组是一组软件的集合。

如上图所示,在解决完cmake内部报错以后,也需要去删除以.txt结尾的文件,然后重新配置MySQL安装参数。

如上图所示,这里的Configuring  done 表示的就是配置MySQL安装参数完成了。

6.编译安装MySQL

如上图所示,对于MySQL来说,在执行 make 之前,通常还需要运行 cmake 或者 configure 脚本来生成适合当前系统的 Makefile 文件。

make 是一个自动化构建工具,它根据名为 Makefile 的文件中定义的规则来管理并执行编译任务。当我们在Linux或其他类Unix系统上从源代码编译软件时,make 负责读取这些规则,确定哪些文件需要更新或重新编译,并按照正确的顺序执行必要的编译命令。

一旦 make 完成了编译工作,生成了所需的二进制文件和其他资源文件之后,下一步就是将这些文件部署到系统中适当的位置,这就是 make install 的职责所在。make install 同样依赖于 Makefile 中定义的规则,但它所做的不是编译源代码,而是将已经编译好的文件复制到指定的目标目录中,使得用户可以在系统中运行或使用这些文件。这一步骤通常需要管理员权限,因为默认情况下,安装目录位于系统的标准位置,比如 /usr/local/bin 或 /usr/local/lib,并且可能会覆盖现有文件

7.修改MySQL安装目录的属主和属组【属主和属组可以简称为所属】

如上图所示,这个mysql57的目录就是MySQL安装的目录,

如上图所示,这里的mysql57目录下的bin目录下有一些管理MySQL的相关命令。

如上图所示,我们需要将MySQL安装目录的属组修改为mysql这是因为,我们需要确保机器中的MySQL用户对MySQL安装目录下的文件拥有正常的查看权限。

将来MySQL的进程需要以MySQL的用户身份来启动。

7.初始化MySQL数据库,让MySQL在数据目录下生成需要的自带的一些数据库和一些数据表,

如上图所示,这是初始化MySQL数据库的操作,这里的

--initialize  【初始化】

--user=mysql【指定用户】

--basedir=/usr/local/mysql57这里是MySQL数据库的安装目录

--datadir=/mysql/data这里是指定MySQL的数据目录。

  

如上图所示,这是初始化MySQL数据库的一些反馈信息。

如上图所示,最直观的,在MySQL数据目录下,有MySQL需要的一些基础数据库和一些其他的文件。

如上图所示,这里MySQL数据库临时给root管理员生成的密码。

8.准备MySQL数据库的主配置文件

如上图所示,这是为MySQL数据库准备配置文件的操作。

在MySQL的安装目录下有一个support-files目录,这个目录下有一个my-default.cnf这个配置文件模板,将这个配置文件模板复制到/etc/目录下,并重命名为my.cnf

如上图所示,这是对MySQL配置文件的编辑工作,即对文件/etc/my.cnf的编辑工作。

9.复制MySQL服务控制脚本

如上图所示,MySQL服务的控制脚本在MySQL安装目录下的support-files目录下的mysql.server文件。

我们将这个脚本文件复制到/etc/init.d/目录下,并对这个脚本文件重命名为mysqld

然后给这个脚本加上可执行的权限,

可以使用脚本路径  -h来查看这个脚本文件的帮助信息。

10.启动MySQL服务

如上图所示,这是启动MySQL服务,看执行脚本所返回的状态没有什么用,

需要查看3306端口和mysqld的进程,此时MySQL服务正式启动。


如上图所示,这个提示信息的意思是当启动MySQL服务的时候,会在MySQL的数据目录下启动一个错误日志文件。这个错误日志文件是以主机名命名的,

11.修改root管理员密码

如上图所示,修改root密码使用命令mysqladmin命令

 

如上图所示,之所以这个命令找不到,是因为这个PATH变量没有相应的命令路径。

如上图所示,将/usr/local/mysql57/bin/这个路径,添加到PATH中.

如上图所示,这是编辑/etc/profile文件,添加export  PATH=$PATH:/usr/local/mysql57/bin/在原来的PATH的数值上在添加上MySQL命令的路径。

如上图所示,mysql命令敲tab键就可以直接使用了。

如上图所示,MySQL数据库的root用户的密码在初始化MySQL数据库的时候给出了。

如上图所示,此时就可以使用新密码去登录数据库了。

12.如果忘记MySQL数据库密码,有两种解决方案。

可以重置密码

或者【以下方法只适用于刚刚安装完数据库的时候】

在刚刚安装完数据库的时候,把密码忘记了,就可以先把MySQL服务关闭。

如上图所示,想要关闭MySQL服务可以使用kill命令去杀死相应的进程也可以使用脚本去停止MySQL服务。

如上图所示,可以把数据目录下的所有文件都删除,

然后需要我们重新运行初始化MySQL的操作。


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

相关文章

【PyTorch】(基础六)---- 搭建卷积神经网络

关于神经网络中激活函数、卷积层、池化层等底层原理,我不会在本文中详解,但是关于pytorch中如何使用对应的方法实现这些层的功能我会进行解释,如果你想要了解一些关于神经网络底层的知识,我十分推荐你去看一下吴恩达老师的深度学习…

MATLAB 平面直线与直线求交(99)

MATLAB 平面直线与直线求交(99) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 平面上,给定两直线,直线由两个点确定,计算直线与直线的交点,理论上只要不平行就有交点,下面是计算代码和效果: 二、算法实现 1.代码 代码如下(示例): % 示例用法 % 定义两条线…

LeetCode-hot100-73

https://leetcode.cn/problems/largest-rectangle-in-histogram/description/?envTypestudy-plan-v2&envIdtop-100-liked 84. 柱状图中最大的矩形 已解答 困难 相关标签 相关企业 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#x…

【机器人】控制之稳定性判定: 李雅普诺夫Lyapunov (4) 李函数设计再举例

图中的动力学方程和 Lyapunov 函数构造方式是基于能量的物理意义,以及该系统的特性推导出来的。以下详细解释为什么可以用图中的 Lyapunov 函数 VV 来描述该动力学方程的特性。 1. 动力学方程的意义 2. Lyapunov 函数的物理意义 3. 为什么可以用这个 Lyapunov 函数表…

ChatGPT推出视频通话及屏幕理解功能,近屿智能邀您共探AI前沿技术

北京时间12月13日凌晨,OpenAI在第六天直播活动中宣布为 ChatGPT 的高级语音模式带来视频输入和屏幕理解功能,同时,为了迎接即将到来的圣诞节,OpenAI还限时推出了充满节日氛围的圣诞老人模式。 直播一开场,几位团队成员…

准确---Centos7使用ODBC连接Oracle操作步骤

1. 创建Oracle用户及权限配置 在Oracle数据库中运行以下SQL命令来创建用户并授予必要的权限: CREATE USER ZABBIX IDENTIFIED BY xxxxxxx DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK; GRANT CONNECT TO ZABBIX; GRANT …

动态建立VXLAN隧道L2、L3子网互访实验(分布式式网关场景)

动态建立VXLAN隧道L2、L3子网互访实验(分布式式网关场景)_动态vxlan-CSDN博客

WireShark速成

1.WireShark安装 官网: Wireshark Go Deep Kali Linux系统自带WireShark工具。 2.WireShark介绍 WireShark是一个网络包分析工具,该工具主要用于捕获网络数据包,并自动解析数据包,为用户显示数据包的详情信息,供…