1 安装环境

 1)清除以往mysql残留痕迹(新机不用)

yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql
rm -rf /etc/my.conf
rm -rf /var/lib/mysql

 2)下载编译工具

yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake

2 创建mysql用户及mysql目录 并授权

useradd -s /bin/false -M -r mysql
mkdir -p /usr/local/{data,mysql,log}
chown -R mysql.mysql /usr/local/mysql

3 上传软件包并解压(可从官网上或各大开源软件镜像站直接下载)

#下为清华大学开源镜像站的下载链接
#https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-boost-5.7.30.tar.gz
tar xvf mysql-boost-5.7.30.tar.gz

4 预编译 编译 安装

#需先进入解压后的目录操作 可用 -C 指定解压目录
cd mysql-5.7.30/

#这里列出一些常用的预编译选项 可选择写入
#详细的预编译选项参见官网 
#https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

cmake . -DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \      #安装目录
-DSYSCONFDIR=/etc \                   #配置文件存放(默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \        #数据目录(含错误日志)
-DINSTALL_MANDIR=/usr/share/man \           #帮助文档
-DMYSQL_TCP_PORT=3306 \                 #默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \          #sock文件位置
-DDEFAULT_CHARSET=utf8 \                #默认字符集
-DEXTRA_CHARSETS=all \                 #扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \                   #上下查找历史命令
-DWITH_SSL=system \                   #使用私钥和证书登录
-DWITH_EMBEDDED_SERVER=1 \               #嵌入式数据库
-DENABLED_LOCAL_SERVER=1 \               #从本地导入数据
-DWITH_INNOBASE_STORAGE_ENGINE=1           #默认的存储引擎 支持外键
cmake . -DWITH_BOOST=boost/boost_1_59_0/ \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DSYSCONFDIR=/etc \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DINSTALL_MANDIR=/usr/share/man \
> -DMYSQL_TCP_PORT=3306 \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
> -DDEFAULT_CHARSET=utf8 \
> -DEXTRA_CHARSETS=all \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_READLINE=1 \
> -DWITH_SSL=system \
> -DWITH_EMBEDDED_SERVER=1 \
> -DENABLED_LOCAL_SERVER=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1

 出现下图所示即表示预编译成功

Mysql--编译安装5.7版本_数据库

 然后进行编译安装

#预编译完成后进行编译安装 此过程较缓慢 提升服务器配置可加快进度
make && make install

 出现下图所示即表示安装成功 

一般预编译不出现问题 编译安装也不会出现问题 所以重点在于预编译 这也是编译安装所有服务的难点

Mysql--编译安装5.7版本_预编译_02

 

5 初始化

初始化后会有系统给定的默认密码 由12位随机字符组成 需复制保存 后续需用这个密码登陆数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

Mysql--编译安装5.7版本_数据库_03

6 修改配置文件(/etc/my.cnf)

#将原有配置文件全删除 写入下列数据
#下列数据路径需与预编译安装时指定的目录一致
[mysqld]
basedir=/usr/local/mysql       #指定安装目录
datadir=/usr/local/mysql/data    #指定数据存放目录
[client]
socket = /tmp/mysql.sock      #sock文件存放位置

7 启动服务(放入后台运行 不然要占一个终端 然后查看端口是否启动)

/usr/local/mysql/bin/mysqld_safe --user=mysql &

Mysql--编译安装5.7版本_数据库_04

8 使用之前保存的密码直接登陆数据库或先修改数据库密码

#登录数据库
/usr/local/mysql/bin/mysql -uroot -p'password'

#修改密码
/usr/local/mysql/bin/mysqladmin -uroot -p'oldpassword' password 'newpassword'

9 为mysql设置快捷命令

#建立符号链接
ln -s /usr/local/mysql/bin/* /usr/bin/

 10 配置mysql服务管理工具(选做)

#将mysql交给service管理
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#将mysql交给chkconfig管理的开机启动中
chkconfig --add mysqld
chkconfig mysqld on

11 启停(生产环境启动服务使用 mysqld_safe,关闭服务使用 mysqladmin)

#关闭mysql服务
/etc/init.d/mysql stop
mysqladmin -uroot -p -S /var/lib/mysql/mysql.sock shutdown

#启动mysql服务
/etc/init.d/mysql start
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
mysqld --user=mysql &