编译部署 Mysql 5.7
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的更多相关文章
- CentOS 7 编译部署LAMP环境
文章目录 1.需求以及环境准备 1.1.版本需求 1.2.环境准备 1.3.安装包准备 2.编译升级Openssl 2.1.查看当前Openssl版本 2.2.备份当前版本Openssl文件 2.3. ...
- Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...
- CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...
- Shell脚本一键部署——源码编译安装MySQL及自动补全工具
Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...
- Ansible部署MySQL编译安装
环境: 系统:centos7 x3 master:192.168.220.133 slave1:192.168.220.136 slave2:192.168.220.137 前期准备: slave1( ...
- 【Linux】Centos部署MySQL
将CentOS部署MySQL需要本地配置环境.本地编译MySQL,耗时较长的情况,优化为编译成型MySQL并打包,推送并按配置部署. 首先需要在一台机器配置好环境,搭个YUM源,并将所需要的包取出备用 ...
- 【排障】编译安装Mysql并使用自启动脚本mysqld后报错
本文用于记录在某次个人实验搭建DZ论坛,在编译安装部署mysql环节时出的错到最终排除错误的过程, 前面采用DZ官网所采用的编译安装mysql的过程就省去,主要从报错处开始讲述. (题外话,经此一役后 ...
- 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装
系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...
- 在windows 上编译部署Rap2
在windows 上编译部署Rap2 引言 安装需要的环境 安装后端站点 创建数据库 在全局安装pm2 和 typescript 配置mysql,redis 数据库链接配置 初始化 编译 初始化数据库 ...
随机推荐
- RestTemplate通过InputStreamResource上传文件
需求:从ftp取文件并http调用某接口上传此文件 偷懒的话可以从ftp上取文件存到本地,再调用接口上传文件,如下 String ftpPath = "/ftp/path/file.bin& ...
- (一)ORB描述子提取
ORBSLAM2中使用ORB描述子的方法 经典的视觉SLAM系统大体分为两种:其一是基于特征点法的,其二是基于直接法的.那么本文主要就讲特征点法的SLAM. 基于特征点法的视觉SLAM系统典型的有PT ...
- codeforces 813E 主席树
题意: 一个数列多组询问,每次询问[l,r]中最多能选多少个数字,其中每个数字的出现次数不超过k次 题解: 我们保存对于每个位置上,出现超过k次的位置,那么对于每次询问,我们就变成了查询区间[l,r] ...
- 简单的接口测试类和测试生成报告工具HTMLTestRunner.py
Demo.py #coding:utf-8 # import requests import json ''' data = { 'username':'jackson', 'password':'a ...
- .NET Core----七牛云图片上传
在引用官方的qiniu.core的nuget是总是发生错误,错误如下,所以就在网上找到了一种解决方案,并稍微改进了一番, 以下是引用图: 方法一: 第一步:引用nuge 第二步:新建项目新建控制器视图 ...
- Android 使用gradle版本冲突
gradle默认版本冲突解决策略:自动依赖最高版本jar包 修改默认解决策略,使之出现版本错误时报错 configurations.all{ resolutionStrategy{ failOnVer ...
- STM32 USB 鼠标+键盘 串口控制
*MOS0101000000# 鼠标左键按下 *MOS0102000000# 鼠标右键按下 *MOS0103000000# 鼠标中键按下 *MOS0100000000# 鼠标抬起 *MOS01000a ...
- spring-cloud-config-server分布式配置中心
spring cloud config是一个基于http协议的远程配置实现方式.通过统一的配置管理服务器进行配置管理,客户端通过https协议主动的拉取服务的的配置信息,完成配置获取. spring ...
- 小米众筹新品---8H凉感慢回弹记忆绵枕 99元 上手开箱图
在众目睽睽之下,商城终于成了杂货铺 众筹发布了第98期新品——8H凉感慢回弹记忆绵枕H1,售价为99元,主打舒适凉感,抗菌吸湿,三曲线护颈设计,3~5秒慢回弹. 本着程序员的读书历程:x 语言入门 — ...
- bzoj 2599
还是点对之间的问题,果断上点分治 同样,把一条路径拆分成经过根节点的两条路径,对不经过根节点的路径递归处理 然后,我们逐个枚举根节点的子树,计算出子树中某一点到根节点的距离,然后在之前已经处理过的点中 ...