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. 前端每日实战:48# 视频演示如何用纯 CSS 创作一盘传统蚊香

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

  2. Echarts 自定义legend图片,修改点击之后的颜色图解

    第一个问题:echarts 可以自定义图例的图标,百度上很多回答都是引用的相对路径,但是不知道为啥,我的vue项目就是引用不显示,在network里面找不到相应图片 后来我想了个法子,就是先获取到这个 ...

  3. 内存管理 malloc free 的实现

    libc 中提供非常好用的  malloc free 功能,如果自己实现一个,应该怎么做. 要实现 malloc free 需要有 可以分配内存使用的堆,和记录内存使用情况的链表. 如下图所示,堆从高 ...

  4. 爬虫之requestsku

    想用selenium实现B站自动登录已经点赞等功能,看到如何解决滑动解锁有关爬虫的内容,便开始学习爬虫,没过多久又想把记录自己生活的网站做起来,朋友便推荐了layui框架倒腾了一晚上自我觉得是做后台系 ...

  5. ASP.NET Core ActionFilter引发的一个EF异常

    最近在使用ASP.NET Core的时候出现了一个奇怪的问题.在一个Controller上使用了一个ActionFilter之后经常出现EF报错. InvalidOperationException: ...

  6. 一文搞懂 Elasticsearch 之 Mapping

    这篇文章主要介绍 Mapping.Dynamic Mapping 以及 ElasticSearch 是如何自动判断字段的类型,同时介绍 Mapping 的相关参数设置. 首先来看下什么是 Mappin ...

  7. 初识Flask、快速启动

    目录 一.初识Flask 1.1 什么是flask? 1.2 为什么要有flask? 二.Flask快速启动 一.初识Flask 1.1 什么是flask? Flask 本是作者 Armin Rona ...

  8. 深入理解“骑士”漏洞 VoltJockey

    先理解一下题目:VoltJockey: Breaching TrustZone by Software-Controlled Voltage Manipulation over Multi-core ...

  9. flex 居中

    display: flex; justify-content: space-between; align-items: center;

  10. centos下配置Nginx

    首先NGINX是一个高效的HTTP和反向代理的服务器,这里记录一下它的安装方式和文件结构方便以后查看.同时Linux系统具有灵活性,其他的东西可查看具体的官网信息:https://nginx.org/ ...