下载安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

下载boost
wget --no-check-certificate https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz/download

解压mysql包 进入到mysql源代码目录 把下载好的boost复制到mysql源代码根目录

开始编译安装
1、安装依赖
yum install -y cmake bison bison-devel libaio-devel gcc gcc-c++ git  ncurses-devel

2、在mysql源代码根目录新建目录configure,并且进入到configure  执行
cmake .. -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \
-DWITH_PAM=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/mysql5720/ \
-DINSTALL_PLUGINDIR="/usr/local/mysql/mysql5720/lib/plugin" \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EDITLINE=bundled \
-DFEATURE_SET=community \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DWITH_BOOST=..

如果编译出现错误,请先删除CMakeCache.txt后,再重新编译:

rm -rf CMakeCache.txt
如果出现下面的提示就表示成功生成了编译环境:

-- Configuring done
-- Generating done


3、使用make进行编译
make
编译完成后,会出现如下信息:

[100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.o
Linking CXX shared module udf_example.so
[100%] Built target udf_example
[100%] Built target my_safe_process

4、安装
make install

5、初始化数据库

添加用户并添加至用户组中
groupadd mysql
useradd -s /sbin/nologin -g mysql mysql

mkdir /usr/local/mysql/mysql5720/data    存放数据的目录
mkdir /usr/local/mysql/mysql5720/log    存放日志的目录
mkdir /usr/local/mysql/mysql5720/logbin   存放bin-log的目录
chown -R mysql:mysql /usr/local/mysql/mysql5720/data
chown -R mysql:mysql /usr/local/mysql/mysql5720/log
chown -R mysql:mysql /usr/local/mysql/mysql5720/logbin

查看配置文件所在目录
/usr/local/mysql/mysql5720/bin/mysql --verbose --help | grep -A 1 'Default options'
输出类似:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
依次从前到后寻找

修改配置文件
将[mysqld]项下的内容替换为:
[mysqld]
port=3306      端口
datadir=/usr/local/mysql/mysql5720/data            数据存放目录
log_error=/usr/local/mysql/mysql5720/log/error.log     错误日志
basedir=/usr/local/mysql/mysql5720       mysql目录
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES      关闭严格模式
log-bin=/usr/local/mysql/mysql5720/logbin/mysql-bin     bin-log存放目录
server-id=1     主服务器id

初始化数据库:
/usr/local/mysql/mysql5720/bin/mysqld  --initialize --user=mysql
然后查看数据存放目录和日志目录是否有文件生成

6、配置启动文件
cp /usr/local/mysql/mysql5720/support-files/mysql.server /etc/init.d/mysqld
修改启动文件
找到如下二行:
basedir=
datadir=
修改为:
basedir=/usr/local/mysql/mysql5720
datadir=/usr/local/mysql/mysql5720/data

7、启动服务并初始化密码
/etc/init.d/mysqld start
查看root的初始密码 
MySQL从5.7开始不支持安装后使用空密码进行登录,因此在这里需要先查询程序生成的临时密码:
cat /usr/local/mysql/mysql5720/log/error.log |grep 'A temporary password'
输出类似:
2018-11-06T14:37:51.832781Z 1 [Note] A temporary password is generated for root@localhost: ij=f,.Ywh5X>
在root@localhost:后面的就是密码 ij=f,.Ywh5X>

使用临时密码登录
/usr/local/mysql/mysql5720/bin/mysql -h 127.0.0.1 -u root -p
登录后立即修改密码
alter user 'root'@'localhost' identified by 'new password';


完成!