源码编译安装MySQL

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。

bash 复制代码
[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的操作。

相关推荐
尘浮生1 小时前
Java项目实战II基于微信小程序的跑腿系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
涛粒子2 小时前
Redis 生产问题(重要)
数据库·redis·缓存
勿栀枝2 小时前
sql多表联查图文
数据库·sql
LaLaLa_OvO3 小时前
ORACLE SQL思路: 多行数据有相同字段就合并成一条数据 分页展示
数据库·sql·oracle
fmc1211044 小时前
【1】数据分析基础(一些概念)
服务器·数据库·oracle
时之彼岸Φ4 小时前
操作系统:文件系统
运维·数据库
With Order @!1474 小时前
如何在项目中使用人大金仓替换mysql
数据库·mysql
散修-小胖子4 小时前
MySQL常用运维操作(一):快速复制一张表
数据库·mysql
CT随5 小时前
MySQL查询缓存详解
数据库·mysql·缓存