mysql源码可以到官网下载

安装依赖包

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

创建组mysql

groupadd mysql

创建用户mysql

useradd -r -g mysql -s /bin/false -M mysql

创建mysql 的安装目录

mkdir -p /usr/local/mysql

创建mysql数据存储目录

mkdir -p /data/mysql

修改目录的用户所属

chown mysql:mysql -R /data

chown mysql:mysql -R /usr/local/mysql/

下载mysql源文件

tar -zxvf mysql-boost-5.7.25.tar.gz

解压到当前目录,然后进入mysql源文件目录

cd mysql-boost-5.7.25

mv boots /usr/local/mysql/boost

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -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 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql/boost

在这里出现了一个警告

重新执行一下上面的cmake命令,警告就没了

make

可能会出现错误,可能是因为内存不足导致

我这里是内存不足的原因

然后添加了虚拟内存,就可以继续编译了

dd if=/dev/zero of=/swapfile bs=1k count=2048000      注:(count表示虚拟内存大小,我这里用了2G,一般跟物理内存一样或者大虚拟内存一倍)

mkswap /swapfile

swapon /swapfile

然继续编译就OK

make

make install

我重新的执行了一次修改了文件所属用户,因为安装后有新的目录

chown mysql:mysql -R /data

chown mysql:mysql -R /usr/local/mysql/

添加环境变量

echo "export PATH=$PATH:/home/mysql/bin" >> /etc/profile

source /etc/profile

初始化数据库  –initialize 表示默认生成一个安全的密码,–initialize-insecure 表示不生成密码

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

出现了一个警告和错误

警告:[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit server option (see documentation for more details)

错误:--initialize specified but the data directory has files in it

警告的解决方法是

vim /etc/my.cnf

在[mysqld]写入  explicit_defaults_for_timestamp=1

报错误的原因是因为存放数据的目录下有文件

mv /data/mysql/* /tmp 移动走就好了

重新执行一遍初始化数据库

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

初始化成功

拷贝mysql启动文件到/etc/init.d/ ,并赋予执行权限

注:support-files/mysql.server这个文件在mysql刚编译的目录下(即是解压的目录下)

cp support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

设置mysql开机启动

chkconfig --add mysqld

chkconfig mysqld on

这是我的etc.cnf配置文件

启动数据库

service mysqld start(或者/etc/init.d/mysqld start)

进入数据库

这里出现了一个错误

解决方法是修改/etc/my.cnf

添加这两个路径

接着又一个错误,可能是因为我初始化数据库太久了,所有密码过期了 Your password has expired. To log in you must change it using a client that supports expired passwords.

修改my.cnf 加入无密登陆数据库

skip-grant-tables

重启mysql即可

重新设置mysql密码

use mysql;  切换到user库

grant all on * to 'root'@'localhost' identified by '123456';  一次执行会报错

FLUSH PRIVILEGES;  刷新权限

grant all on * to 'root'@'localhost' identified by '123456';  再次执行即可

%表示允许远程登陆

localhost表示本地登陆

记得把my.cnf里的 skip-grant-tables 注释掉或者删除 然后再重启服务器

重新输入密码进入即可

٩(๑>◡<๑)۶

centos7 编译安装mysql5.7的更多相关文章

  1. centos7编译安装MySQL5.7.9

    title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...

  2. CentOS7 编译安装MySQL5.6.38(一)

    一.下载MySQL5.6.38安装包 下载地址:https://www.mysql.com/downloads/  打开网站之后选择Archives 然后再选择开源版本 选择我们要下载的版本: htt ...

  3. CentOS7编译安装MySQL5.7.24

    目录 安装依赖 安装boost 编译安装MySQL 配置 登录MySQL,修改密码 安装依赖 (1)cmake是新版MySQL的编译工具 sudo yum install gcc gcc-c++ pc ...

  4. CentOS7编译安装mysql-5.6.43

    Step 1:安装编译需要的软件和工具 [root@node-1 ~]# yum install gcc gcc-c++ cmake ncurses-devel bison Step 2:创建mysq ...

  5. centos7编译安装mysql5.6

    先安装如下依赖包: $ yum -y install make gcc-c++ cmake bison-devel  ncurses-devel 下载MySQL5.6.14安装包,https://pa ...

  6. centos7.2环境编译安装mysql5.5.48

    一.安装cmake编译工具 跨平台编译器 查看是否已经安装了gcc # rpm -qa | grep gcc # yum install -y gcc-c++ # yum install -y cma ...

  7. Centos7编译安装lnmp(nginx1.10 php7.0.2)

    我使用的是阿里云的服务器 Centos7 64位的版本 1. 连接服务器 这个是Xshell5的版本 安装好之后我们开始连接服务器 2. 安装nginx 首先安装nginx的依赖 yum instal ...

  8. 编译安装MySQL-5.7.13

    编译安装MySQL-5.7 cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影 ...

  9. 转:Linux 编译安装 Mysql5.7

    http://broqiang.com/2017/04/18/Mysql-Install-5.7.18-Linux-Compile/ 原文 Linux 编译安装 Mysql5.7 Ubuntu 下快速 ...

随机推荐

  1. 前端每日实战:10# 视频演示如何用纯 CSS 创作一个同心圆弧旋转 loader 特效

    效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视频是可以交 ...

  2. String字符串位置移动

    有规律的String字符串位置移动 1.自定义一个有规律的String字符串 String numstr = "1,2,3,x,y,4,5"; 2.按逗号拆分numstr字符串 S ...

  3. 论nw.js的坑~~~感觉我所有的前端能遇到的坑都踩了一遍

    先总结:nw.js 真特么的...难用...文档,我得先百度才能看的稍微明白点文档......!!!!!!我感觉我所有的前端能遇到的坑都踩了一遍,此文针对前后端分离项目,别的先不说 一.不需要在项目里 ...

  4. 置顶,博客中所有源码 github

    所有项目源代码,开源地址. 作者 github 主页 https://github.com/nejidev 目前开源项目有: 1, linux tea5767 at24c08 mmap 实现fm 收音 ...

  5. 音频相关 ALSA ffmpeg ffplay 命令用法 g7xx

    采样率: samples 441100 每秒 DAC/ADC 采样的频率,声卡一般还支持 48k 8k 等模式. 通道:channels 2声道 左右声道 也有单声道的声音,5.1 声道 位数: 16 ...

  6. 【JDK】JDK源码分析-HashMap(2)

    前文「JDK源码分析-HashMap(1)」分析了 HashMap 的内部结构和主要方法的实现原理.但是,面试中通常还会问到很多其他的问题,本文简要分析下常见的一些问题. 这里再贴一下 HashMap ...

  7. 工作5年了还说不清bean生命周期?大厂offer怎么可能给你!

    第一,这绝对是一个面试高频题. 比第一还重要的第二,这绝对是一个让人爱恨交加的面试题.为什么这么说?我觉得可以从三个方面来说: 先说会不会.看过源码的人,这个不难:没看过源码的人,无论是学.硬背.还是 ...

  8. ReentrantReadWriteLock 源码分析以及 AQS 共享锁 (二)

    前言 上一篇讲解了 AQS 的独占锁部分(参看:ReentrantLock 源码分析以及 AQS (一)),这一篇将介绍 AQS 的共享锁,以及基于共享锁实现读写锁分离的 ReentrantReadW ...

  9. 测试必知必会系列- Linux常用命令 - mkdir

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! 新建一个文件夹 yyTest mkdir yyTest 新建三个文件夹 yyTest1 yyTest2 yyTe ...

  10. Jquery 系列化表单

    大家知道Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法.不过,我们可以写一个插件实现. 我在网上看到有人用替换的方法,先用 ...