通过编译二进制安装MySQL5.7

Posted JohnnyFang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过编译二进制安装MySQL5.7相关的知识,希望对你有一定的参考价值。

    数据库对于一个企业、组织甚至国家的意义不言而喻,mysql作为关系型数据库中的一个开源免费软件系统,它有着插件式引擎、单进程多线程、诸多特展和新特性、提供较多测试组件等特性,本次实验主要来看一下MySQL5.7的编译、二进制安装。

  1. 编译安装MySQL5.7

    编译安装要求虚拟机内存4G以上,CPU核数尽量多点,否则过程会很慢,如果中间出错了,会比较耗时间。

1.1 官网下载源码包

    进入到MySQL官网​官网地址:​https://www.mysql.com/​​​​​​,笔者这边下载的是MySQL5.7.36版本,如果不下载电脑,也可复制下载部分的链接,在虚拟机上使用wget命令直接下载。MySQL查找版本流程如下:

通过编译、二进制安装MySQL5.7_编译安装

通过编译、二进制安装MySQL5.7_编译安装_02

通过编译、二进制安装MySQL5.7_配置文件_03

通过编译、二进制安装MySQL5.7_配置文件_04

1.2 下载依赖包

    编译安装的依赖包比较多,最好提前下载好,免得中间过程报错,重复执行的话会比较耗时间。

通过编译、二进制安装MySQL5.7_配置文件_05

1.3 准备用户和数据目录

    创建一个MySQL的专用账号,同时创建MySQL的家目录,因为默认的权限是root,还需将权限交给mysql​(如下图)​。

通过编译、二进制安装MySQL5.7_配置文件_06

1.4 源码编译安装

    MySQL的编译安装比较特殊,不是利用传统方法,而是要用cmake编译,cmake的重要特性之一是其独立于源码​(out-of-source)​的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。

1.4.1 解压源码和boost包

    将源码包解压到/usr/local/src目录下,当然这只是习惯,就放在root下或者其他目录下也行。另外要注意的是,MySQL5.7版本的编译安装需boost_1_59_0这个包,笔者之前试过几个版本都没成功,包括带boost的版本,而此次实验单独添加了这个包进来,是可以实现编译安装的。

通过编译、二进制安装MySQL5.7_配置文件_07

1.4.2 编译安装

    进入到/usr/local/src/mysql-5.7.36目录下,执行如下命令:

通过编译、二进制安装MySQL5.7_配置文件_08

    上一步无报错完成后,可根据自己虚拟机的内核来进行编译安装,当然编译过程可能会报错​(如下图)​。

通过编译、二进制安装MySQL5.7_配置文件_09

通过编译、二进制安装MySQL5.7_mysql_10

    此时,我们可以执行 ​rm -f CMakeCache.txt​ 命令删除掉CMakeCache.txt文件,重新进行编译安装。如果删除文件还不行,就执行 ​make clean ​命令,并再次删除文件,重新进行编译,通常上一步不出错的话,编译安装是会成功的​(如下图)​。

通过编译、二进制安装MySQL5.7_mysql_11

通过编译、二进制安装MySQL5.7_配置文件_12

1.5 准备环境变量

    /apps/mysql/bin文件件中放了很多的可执行程序,例如MySQL的客户端mysql也在其中,为了后面不用每次都写路劲,可放到PATH变量中,方便后期操作使用​(如下图)​。

通过编译、二进制安装MySQL5.7_编译安装_13

通过编译、二进制安装MySQL5.7_配置文件_14

1.6 生成数据库文件

    进入到/apps/mysql目录下,执行 ​bin/mysqld --initialize --datadir=/data/mysql --user=mysql​ 命令生成初始数据库,完成后,查看/data/mysql目录,发现生成若干文件。注意生成初始数据库时会有一个root登录口令,这是MySQL初次登录时要用到的,需记好​(如下图)​。

通过编译、二进制安装MySQL5.7_编译安装_15

1.7 准备启动脚本和配置文件

    /etc目录下是有my.cnf配置文件的,但是内容却是mariadb的,不符合要求,我们需自己准备配置文件。在编译安装完成后,/apps/mysql/support-files/目录下有一个mysql.server文件,我们可以拷贝此文件到/etc/init.d/中作为启动脚本文件,并取名叫mysqld​(如下图)​。

通过编译、二进制安装MySQL5.7_编译安装_16

通过编译、二进制安装MySQL5.7_mysql_17

    将mysqld设为开机启动,接着我们需要编辑配置文件,完成后开启服务,此时,3306端口已经打开​(如下图)​。

通过编译、二进制安装MySQL5.7_编译安装_18

通过编译、二进制安装MySQL5.7_编译安装_19

1.8 安全初始化

    完成以上的操作后,还需对MySQL数据库进行安全初始化,执行 ​mysql_secure_installation​ 命令,在输入生成数据库文件时的登录口令后可以进行初始化设置​(如下图)​。

通过编译、二进制安装MySQL5.7_配置文件_20

    完成初始化后,通过新的登录口令,就可以在数据库上进行想要的操作了​(如下图)​。

通过编译、二进制安装MySQL5.7_编译安装_21


  1. 二进制安装MySQL5.7

    通用二进制安装相对源码编译安装来说没那么繁琐,也不用过多考虑安装过程中会出错。

2.1 下载软件包

    笔者这边还是下载MySQL5.7.36版本软件包,二进制安装的所需的包与源码包不同,查找版本同源码编译部分相似,只是最后的下载选项有所差别​(如下图)​。

通过编译、二进制安装MySQL5.7_mysql_22

2.2 准备用户和数据目录

    创建MySQL数据库的专用用户和组,同时创建数据目录,将数据目录的权限交给mysql​(如下图)​。

通过编译、二进制安装MySQL5.7_编译安装_23

2.3 准备程序文件

    二进制安装需要下载相关包,不过只有libaio和numactl-libs两个。

通过编译、二进制安装MySQL5.7_配置文件_24

    二进制安装的MySQL包是已经编译过的,所以解压的路径必须是编译的路径,将MySQL压缩包解压到/usr/local目录下。

通过编译、二进制安装MySQL5.7_编译安装_25

    默认编译路径是/usr/local/mysql,进入到/usr/local目录下,对mysql解压包创建个软链接叫mysql,同时将递归修改解压包的所有者和所属组改为root​(如下图)​。

通过编译、二进制安装MySQL5.7_配置文件_26

2.4 准备环境变量

    该部分与源码编译安装的说明相同,不做赘述。

通过编译、二进制安装MySQL5.7_配置文件_27

2.5 准备启动脚本和配置文件

    参照源码编译部分将/usr/local/mysql/support-files目录下的mysql.server 拷贝到/etc/init.d/目录下,并取名mysqld作为启动脚本。同时在/etc目录下创建配置文件my.cnf,配置文件完成后,可对MySQL进行安全初始化操作,笔者这里设定的初始登录无口令​(如下图)​。

通过编译、二进制安装MySQL5.7_配置文件_28

通过编译、二进制安装MySQL5.7_编译安装_29

    可以将服务加入到开机启动项中,接下来就可以开启服务了。

通过编译、二进制安装MySQL5.7_编译安装_30

2.6 修改登录口令及其他操作

    由于安全初始化设置时,笔者设定的首次无口令登录,完成上述操作后,可设置指定密*码进行登录。

通过编译、二进制安装MySQL5.7_编译安装_31

    接下来就可以使用新密*码来进行数据库的相关操作了。

通过编译、二进制安装MySQL5.7_配置文件_32

以上是关于通过编译二进制安装MySQL5.7的主要内容,如果未能解决你的问题,请参考以下文章

源码编译并二进制安装MySQL5.7 3 二进制安装mariadb10.4

MySQL5.7.x二进制安装

mysql5.7编译安装

mysql5.7 基于二进制编译多实例安装

MYSQL5.7的安装(yum二进制编译安装)

mysql5.7安装