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的操作。