今天我们来讲解在Linux环境下用源码来安装MySQL
1.下载安装包
首先 我们去官网下载安装包,在上篇文章中有网站安装包的选取及其介绍,这次就不多做介绍。
这次介绍的是7.5版本的。
2.安装开发工具和安装包
因为要把源码编译成二进制数据,所以必须要有编译器和解释器。
gcc 是编译C语言的,gcc-c++是编译C++的,一般而言两个工具都会安装上。
由于MySQL在5.5版本后,编译源码安装命令改成了cmake,不再是make,所以还要下载cmake命令和相关的所有库
3.解压
3.1上传压缩包
用rz命令就可以
解压在自己指定的路径。
4.添加mysql用户名和mysql组(有的话就不用添加)
查看是否已创建此用户名和组(用户名和组存在/etc/passwd里)
5.执行camake:
注意:cmake命令执行失败后,会生成一个 CMakeCache.txt文件(用来保存错误信息),下次使用时一定要删除此文件,否则还是会执行不成功
[root@localhost mysql-5.7.14]# cmake
-DCMAKE_INSTALL_PREFIX=/soft/mysql -DMYSQL_DATADIR=/soft/mysql/data -DSYSCONFDIR=/etc/my.cnf -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/src/mysql-5.7.14/boost/boost_1_59_0/
注意:
第一行的/soft/mysql和/soft/mysql/data位置是使用cmake编译后的文件存放位置,可以自己定
最后一行的usr/local/src/mysql-5.7.14是MySQL源码的位置
高版本要将倒数第二行的两个utf8都改为utf8mb4
如果找不到第一行的文件夹,则需要创建相应文件夹
cmake命令要在MySQL源的路径里操作
!](https://img-blog.csdnimg.cn/20200924130619748.png#pic_center)
6.编译安装:注意路径!!!
[root@localhost mysql-5.7.14]# make && make install
注:执行这条命令后,可能会报以下错误:make: *** No targets specified and no makefile found. Stop.
解决方法:
1.update最新版本系统软件
yum update
2.Linux下各种依赖都已经安装,是因为没有找到makefile 如果是自己写的,确定在当前目录下;如果是源码安装,先运行./configure,生成makefile,再执行make,即可正常运行。
./configure cmake .
(我用了第一种方法)
7.初始化:
cd到mysql文件夹里
输入初始化命令:
[root@bogon mysql]# /soft/mysql/bin/mysqld --initialize --user=mysql
–datadir=/soft/mysql/data --basedir=/soft/mysql
注意:这里的/soft/是mysql文件夹的路径,修改路径的话改绿色框框里的就好
basedir是当前路径,也就是mysql的路径
记住临时密码
8.为MySQL提供配置文件:
因为默认提供了配置文件support-files,所以直接替换次此配置文件就行(建议强行覆盖,在命令前加\)
强行覆盖:# \cp my-default.cnf /etc/my.cnf
编辑配置文件,指定MySQL数据文件的存放位置
[root@bogon support-files]# vim /etc/my.cnf
9.为MySQL提供sysv服务脚本
先切换到脚本所在路径
复制脚本到指定路径,并查看脚本是否有X权限
注释:init.d 目录中存放的是一系列系统服务的管理(启动与停止)脚本
用service命令可执行init.d目录中相应服务的脚本
例:执行命令“service resin start”,可启动/etc/init.d/resin脚本
/etc/init.d是指向/etc/rc.d/init.d的软连接
如果没有权限,通过以下命令添加x权限
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
10.添加服务,设置开机自动启动
11.修改PATH环境变量,让系统可以直接使用MySQL相关命令
[root@bogon /]# vim /etc/profile.d/mysql.sh
注意bin目录的路径
启动MySQL:
且到bin下,使用之前记的初始密码,进入MySQL:
此时,无法正常使用MySQL,因为没有修改密码
12.修改密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密 码’;
修改成功后,可以正常使用MySQL
修改成功后,可以正常使用MySQL
源码安装MySQL完成!
安装总结:注意路径,有些命令像cmake,只能在MySQL源码路径才可以运行