1.环境准备

  • RHEL7.4(最小化安装)  64bit   2G 内存 (1G 内存编译将近一个小时)
  • 磁盘空间 15G 以上。
  • 配置为本地yum 源
  • 从MySQL5.7版本开始,安装MySQL需要依赖 Boost 的C++扩展,而且只能是 1.59.0 版本;

2.cmake简介

从mysql5.5起,mysql源码安装开始使用cmake.CMake一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

   configure方式和 cmake 方式对比区别:
configure command cmake command
------------------------------------------------------------------------------------
./configure                              cmake .
./configure --help                    cmake . -LH or ccmake .
##重新编译时,需要清除旧的对象文件和缓存信息----------------------
make clean                             rm -f CMakeCache.txt
##安装选项 --------------------------------------------------------------------
--prefix=/usr/local/mysql        -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
##最终安装--------------------------------------------------------------------

make                                               make
make install                                     make install

使用configure编译完将生成 config.log 和 config.status 文件。

使用cmake编译完在CMakeFiles目录下生成 CMakeError.log 和 CMakeOutput.log 文件。

3.准备工作

  • 准备 c++ booost 库,不需要编译 。

Boost 下载地址: http://www.boost.org/users/history ;选择1.59.0版本下载,在编译是填写相应参数,指定Boost源码位置即可;

tar xf boost_1_59_0.tar.gz

mv boost_1_59_0 /usr/local/boost

  • 下载mysql并解压[root@001 ~]# tar xf mysql-5.7.19.tar.gz -C /usr/local/src
    [root@001 ~]# cd !$
    [root@001 src]# cd mysql-5.7.19/
  • .安装相关编译工具

[root@001 mysql-5.7.19]# yum -y install gcc-c++ ncurses-devel cmake

4.编译安装(注意以下所有操作均要进入mysql-5.7.19中进行)

  • [root@001 mysql-5.7.19]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

## cmake 的检测过程中,如果出现错误,需要重新 cmake, 删除缓存文件
           ##  rm CMakeCache.txt , 然后重新 运行 cmake 。

cmake 参数解析 :--------------------------------------
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql57   指定安装路径
-DMYSQL_DATADIR=/data/mysql      指定数据存放路径
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci        设置字符校验集
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock        设置套接字生成路径
-DMYSQL_USER=mysql
-DWITH_MYISAM_STORAGE_ENGINE=1       存储引擎的支持
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost              指定Boost扩展源码路径

  • make

##此过程很漫长,请耐心等待,#如果出错重新运行配置,需要删除 CMakeCache.txt文件,

使用命令: rm -f CMakeCache.txt

  • make install

## 千万注意磁盘空间的使用率。

5.配置文件

  • 提供配置文件, my.cnf 默认配置详情如下,可以自己建立

[client]
port=3306
socket=/mysql/mysql.sock          ##注意修改所有者:mysql
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
skip-grant-tables                             ##跳过授权表  可以直接进入数据库修改密码
user=mysql
port=3306
basedir=/usr/local/mysql57              ##注意修改所有者:mysql
datadir=/mysql
tmpdir=/tmp
socket=/mysql/mysql.sock
log-error=/mysql/mysqld.log
pid-file=/mysql/mysqld.pid

6.修改启动客户端方式

  • PATH=$PATH:/usr/local/mysql57/bin 写入到 /etc/profile 中,永久生效 source /etc/profile 重新读取生效

## 将编译好的 mysql bin 里面的命令,加入到 $PATH 变量中,可使用[root@server-150 ~]# mysql进入客户端

  • 不修改可以使用绝对路径     [root@server-150 ~]# /usr/local/mysql57/bin/mysql

7.初始化数据库

  • 初始化数据库

[root@http9 mysql]# /usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

# 初始化数据库, 确保 /mysql 目录是mysql 可写的。

命令参数解释:
--defaults-file : 指定MySQL配置文件路径 ##这里面有我们刚才配置好的参数
--initialize : 初始化随机密码,注意,初始化的密码是一个过期密码,登录后需要立刻修改密码
--user: 指定运行用户

  • 启动mysql 服务

[root@http9 mysql]# /usr/local/mysql57/support-files/mysql.server  start

8.修改root密码

[root@server-150 ~]# mysql                             ##进入数据库

修改密码的三种方法:

方法一 :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123123';           ##成功后修改新密码。
mysql> flush privileges;

方法二:
SET PASSWORD = PASSWORD('你的新密码');        ## 新版本的root 密码不再接受 弱密码,需要一定的复杂度。

否则会提示错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

方法三:
update mysql.user set authentication_string=password("123123@qq.com");
flush privileges;

总结:修改密码后即可正常使用mysql,与rpm版相比编译版更加简洁,删除数据时只需要将数据目录/mysql和基本目录、usr/local/mysql57删除即可。

编译部署 Mysql 5.7的更多相关文章

  1. CentOS 7 编译部署LAMP环境

    文章目录 1.需求以及环境准备 1.1.版本需求 1.2.环境准备 1.3.安装包准备 2.编译升级Openssl 2.1.查看当前Openssl版本 2.2.备份当前版本Openssl文件 2.3. ...

  2. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  3. CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境

    我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...

  4. Shell脚本一键部署——源码编译安装MySQL及自动补全工具

    Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...

  5. Ansible部署MySQL编译安装

    环境: 系统:centos7 x3 master:192.168.220.133 slave1:192.168.220.136 slave2:192.168.220.137 前期准备: slave1( ...

  6. 【Linux】Centos部署MySQL

    将CentOS部署MySQL需要本地配置环境.本地编译MySQL,耗时较长的情况,优化为编译成型MySQL并打包,推送并按配置部署. 首先需要在一台机器配置好环境,搭个YUM源,并将所需要的包取出备用 ...

  7. 【排障】编译安装Mysql并使用自启动脚本mysqld后报错

    本文用于记录在某次个人实验搭建DZ论坛,在编译安装部署mysql环节时出的错到最终排除错误的过程, 前面采用DZ官网所采用的编译安装mysql的过程就省去,主要从报错处开始讲述. (题外话,经此一役后 ...

  8. 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装

    系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...

  9. 在windows 上编译部署Rap2

    在windows 上编译部署Rap2 引言 安装需要的环境 安装后端站点 创建数据库 在全局安装pm2 和 typescript 配置mysql,redis 数据库链接配置 初始化 编译 初始化数据库 ...

随机推荐

  1. vueSSR全栈(项目实战 mac)

    1.准备安装及指定版本 参考安装类中的 安装部分(node,npm,webpack) nuxt 官网下载nuxt脚手架(可以自定义版本) 需要下载MongoDB  redis 以及数据库可视化工具 具 ...

  2. springboot+mysql+mybatis+Mybatis-Generator+druid 项目demo

    1.使用idea新建项目 2.使用Mybatis-Generator自动生成Dao.Model.Mapping相关文件 3.配置application.yml文件 server: port: 8080 ...

  3. 【medium】990. Satisfiability of Equality Equations 并查集

    Given an array equations of strings that represent relationships between variables, each string equa ...

  4. Debug Dump file

    dump file is a snapshot of the processs memeory. to debug it, we need use its corresponding executiv ...

  5. ebe

    ebe1 Email:kefu007@vip.qq.com 89600 VSA 软件解调和矢量信号分析的综合工具 Aspen Plus大型通用流程模拟系统 AutoAdvance Baccarat-P ...

  6. 详解MariaDB数据库的外键约束

    1.什么是外键约束 外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强. 关于数据表的完整性和关连性,可以举个例子 ...

  7. ssh登录,爬坑系列

    最近在实验室弄ssh登录,结果被虐了,要注意以下: 1.主机名不能包括   -     _    !  等非法字符. 2.如果hadoop格式化时,报:“SHUTDOWN_MSG: Shutting ...

  8. Java序列化随记

    序列化简介: 程序中的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,因此需要Java序列化技术. Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制 ...

  9. ansible字符串的处理

    ansible中字符串的处理 from_json json_query join select selectattr map list trim 列表和字典的处理 combine

  10. java 静态资源访问详解

    一.java project项目 如果工程项目是java project的话获取资源文件 1.如果是在本工程根目录下直接访问 FileReader fr = new FileReader(" ...