通过编译二进制安装MySQL5.7
Posted JohnnyFang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过编译二进制安装MySQL5.7相关的知识,希望对你有一定的参考价值。
数据库对于一个企业、组织甚至国家的意义不言而喻,mysql作为关系型数据库中的一个开源免费软件系统,它有着插件式引擎、单进程多线程、诸多特展和新特性、提供较多测试组件等特性,本次实验主要来看一下MySQL5.7的编译、二进制安装。
- 编译安装MySQL5.7
编译安装要求虚拟机内存4G以上,CPU核数尽量多点,否则过程会很慢,如果中间出错了,会比较耗时间。
1.1 官网下载源码包
进入到MySQL官网(官网地址:https://www.mysql.com/),笔者这边下载的是MySQL5.7.36版本,如果不下载电脑,也可复制下载部分的链接,在虚拟机上使用wget命令直接下载。MySQL查找版本流程如下:
1.2 下载依赖包
编译安装的依赖包比较多,最好提前下载好,免得中间过程报错,重复执行的话会比较耗时间。
1.3 准备用户和数据目录
创建一个MySQL的专用账号,同时创建MySQL的家目录,因为默认的权限是root,还需将权限交给mysql(如下图)。
1.4 源码编译安装
MySQL的编译安装比较特殊,不是利用传统方法,而是要用cmake编译,cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
1.4.1 解压源码和boost包
将源码包解压到/usr/local/src目录下,当然这只是习惯,就放在root下或者其他目录下也行。另外要注意的是,MySQL5.7版本的编译安装需boost_1_59_0这个包,笔者之前试过几个版本都没成功,包括带boost的版本,而此次实验单独添加了这个包进来,是可以实现编译安装的。
1.4.2 编译安装
进入到/usr/local/src/mysql-5.7.36目录下,执行如下命令:
上一步无报错完成后,可根据自己虚拟机的内核来进行编译安装,当然编译过程可能会报错(如下图)。
此时,我们可以执行 rm -f CMakeCache.txt 命令删除掉CMakeCache.txt文件,重新进行编译安装。如果删除文件还不行,就执行 make clean 命令,并再次删除文件,重新进行编译,通常上一步不出错的话,编译安装是会成功的(如下图)。
1.5 准备环境变量
/apps/mysql/bin文件件中放了很多的可执行程序,例如MySQL的客户端mysql也在其中,为了后面不用每次都写路劲,可放到PATH变量中,方便后期操作使用(如下图)。
1.6 生成数据库文件
进入到/apps/mysql目录下,执行 bin/mysqld --initialize --datadir=/data/mysql --user=mysql 命令生成初始数据库,完成后,查看/data/mysql目录,发现生成若干文件。注意生成初始数据库时会有一个root登录口令,这是MySQL初次登录时要用到的,需记好(如下图)。
1.7 准备启动脚本和配置文件
/etc目录下是有my.cnf配置文件的,但是内容却是mariadb的,不符合要求,我们需自己准备配置文件。在编译安装完成后,/apps/mysql/support-files/目录下有一个mysql.server文件,我们可以拷贝此文件到/etc/init.d/中作为启动脚本文件,并取名叫mysqld(如下图)。
将mysqld设为开机启动,接着我们需要编辑配置文件,完成后开启服务,此时,3306端口已经打开(如下图)。
1.8 安全初始化
完成以上的操作后,还需对MySQL数据库进行安全初始化,执行 mysql_secure_installation 命令,在输入生成数据库文件时的登录口令后可以进行初始化设置(如下图)。
完成初始化后,通过新的登录口令,就可以在数据库上进行想要的操作了(如下图)。
- 二进制安装MySQL5.7
通用二进制安装相对源码编译安装来说没那么繁琐,也不用过多考虑安装过程中会出错。
2.1 下载软件包
笔者这边还是下载MySQL5.7.36版本软件包,二进制安装的所需的包与源码包不同,查找版本同源码编译部分相似,只是最后的下载选项有所差别(如下图)。
2.2 准备用户和数据目录
创建MySQL数据库的专用用户和组,同时创建数据目录,将数据目录的权限交给mysql(如下图)。
2.3 准备程序文件
二进制安装需要下载相关包,不过只有libaio和numactl-libs两个。
二进制安装的MySQL包是已经编译过的,所以解压的路径必须是编译的路径,将MySQL压缩包解压到/usr/local目录下。
默认编译路径是/usr/local/mysql,进入到/usr/local目录下,对mysql解压包创建个软链接叫mysql,同时将递归修改解压包的所有者和所属组改为root(如下图)。
2.4 准备环境变量
该部分与源码编译安装的说明相同,不做赘述。
2.5 准备启动脚本和配置文件
参照源码编译部分将/usr/local/mysql/support-files目录下的mysql.server 拷贝到/etc/init.d/目录下,并取名mysqld作为启动脚本。同时在/etc目录下创建配置文件my.cnf,配置文件完成后,可对MySQL进行安全初始化操作,笔者这里设定的初始登录无口令(如下图)。
可以将服务加入到开机启动项中,接下来就可以开启服务了。
2.6 修改登录口令及其他操作
由于安全初始化设置时,笔者设定的首次无口令登录,完成上述操作后,可设置指定密*码进行登录。
接下来就可以使用新密*码来进行数据库的相关操作了。
以上是关于通过编译二进制安装MySQL5.7的主要内容,如果未能解决你的问题,请参考以下文章