之所以贴出这样一篇笔记呢?主要是因为很久之前,源码安装MySQL的时候,碰到了太多太多的坎坷。

如果你有兴趣进行源码安装,那么请不要以这篇文章为标准,因为每个人的及其环境等其他因素还是差距比较大的。

但可以作为一篇流程参考文档,其中的坑点总结,希望能帮助大家绕过一些不必要的麻烦!

坑点

1 5.7.6以后安装必须有boost支持

2 权限和路径比较坑,步骤较多,如果中间错了,

先检查之前执行命令时权限是否正确,

再检查每一步操作的路径是否符合自己本地要求

3 很多人傻傻的找不到源码包在哪里,两个都是源码包

只不过下一个包含boost依赖

 

mysql源码编译cmake 源码安装mysql5.7_sql

 

准备

1、首先安装依赖包

yum install -y gcc gcc-c++ ncurses-devel perl openssl-devel

最最重要的是,不要忘了安装openssl-devel

2、安装cmake

sudo yum install cmake

 

 

1 mysql迅雷下载地址:

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz

2 解压:

sudo tar xzvf mysql-boost-5.7.18.tar.gz -C /usr/local/Mysql/

注:稍后我们需要建立/usr/local/mysql,

所以这里要建造一个Mysql,当然建造其他的也可以,

和之后的/usr/local/mysql 能区分开就好

3 先创建用户mysql并将mysql用户添加到mysql组下

groupadd mysql   

useradd -g mysql mysql   

将解压的文件的权限修改为mysql:mysql

sudo chown mysql:mysql /usr/local/Mysql/mysql-5.7.18

注:创建用户

4 安装依赖包:

sudo apt install -y build-essential cmake libncurses5-dev bison

 

编译

1 进入源码解压目录

cd /usr/local/Mysql/mysql-5.7.18/

2 创建编译后的文件存储位置,并进入

(1)sudo mkdir build      //创建build目录

(2)cd build      //进入build目录

3 指定cmake参数

sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DDEFAULT_CHARSET=utf8mb4 .. -DWITH_BOOST=/usr/local/src/mysql-5.7.18/boost/boost_1_59_0

.. -DMYSQL_DATADIR=/data/mysql/data

安装的路径有点坑, 下面这条命令中有两个 ".."

如果不写的话,会提示没有

"/usr/local/Mysql/mysql-5.7.18/boost/boost_1_59_0"

由于对linux还不是特别熟悉,我估计应该是执行cmake时,会从根目录开始找配置的参数目录,

而".."代表根目录

 

mysql源码编译cmake 源码安装mysql5.7_mysql_02

 

4 sudo make

编译完成之后,和网上视频教程讲述的一致,效果如下:

 

mysql源码编译cmake 源码安装mysql5.7_mysql源码编译cmake_03

 

 

5 执行 sudo make install

 

mysql源码编译cmake 源码安装mysql5.7_mysql_04

 

 

6 检查是否安装成功:

 

mysql源码编译cmake 源码安装mysql5.7_mysql源码编译cmake_05

 

文件编译好之后,就需要安装数据库并执行配置了!

 

安装Mysql

1 配置环境变量(非必须):

创建变量文件,可以创建在profile,也可以创建在profile.d中

 

mysql源码编译cmake 源码安装mysql5.7_mysql_06

 

写入配置信息

 

mysql源码编译cmake 源码安装mysql5.7_根目录_07

 

执行生效环境变量,注意:这一步必须退到根目录下执行,

 

mysql源码编译cmake 源码安装mysql5.7_根目录_08

 

2 创建配置文件

在mysql的安装目录下创建配置文件目录/etc,

在/etc下创建my.cnf

 

mysql源码编译cmake 源码安装mysql5.7_根目录_09

 

 

3 编辑my.cnf

有些目录

my.cnf
[client]
[mysqld]
basedir=/usr/local/mysql
# this direct impossible is nothing,we need to build!
datadir=/usr/local/mysql/data
# The document was not informed
socket=/tmp/mysql.sock
character_set_filesystem = utf8mb4
character_set_server = utf8mb4
symbolic-links=0
# run and log is must!
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/run/mysqld.pid

 

4 将mysql目录下的文件权限,全部赋给mysql,

否则会导致初始化后,/data下没有任何内容

 

5 进行初始化

sudo /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf

--initialize --user=mysql

 

6 配置启动服务

 

mysql源码编译cmake 源码安装mysql5.7_根目录_10

 

 

7 查询mysql的初始密码,在日志文件中随机生成的;

后面的路径需要注意是自己的

sudo grep 'root'@'localhost' /usr/local/mysql/log/mysqld.log

初始密码:7wff5n<w%j_S

 

mysql源码编译cmake 源码安装mysql5.7_mysql_11

 

8 修改root密码

ALTER USER root@localhost IDENTIFIED BY 'new password';

9 连接数据库

mysql -h IP地址 -uroot -p 【回车后输密码】

GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDENTIFIED BY 'itoffice' WITH GRANT OPTION;