centos7 编译安装mysql5.7
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的更多相关文章
- centos7编译安装MySQL5.7.9
title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...
- CentOS7 编译安装MySQL5.6.38(一)
一.下载MySQL5.6.38安装包 下载地址:https://www.mysql.com/downloads/ 打开网站之后选择Archives 然后再选择开源版本 选择我们要下载的版本: htt ...
- CentOS7编译安装MySQL5.7.24
目录 安装依赖 安装boost 编译安装MySQL 配置 登录MySQL,修改密码 安装依赖 (1)cmake是新版MySQL的编译工具 sudo yum install gcc gcc-c++ pc ...
- CentOS7编译安装mysql-5.6.43
Step 1:安装编译需要的软件和工具 [root@node-1 ~]# yum install gcc gcc-c++ cmake ncurses-devel bison Step 2:创建mysq ...
- centos7编译安装mysql5.6
先安装如下依赖包: $ yum -y install make gcc-c++ cmake bison-devel ncurses-devel 下载MySQL5.6.14安装包,https://pa ...
- centos7.2环境编译安装mysql5.5.48
一.安装cmake编译工具 跨平台编译器 查看是否已经安装了gcc # rpm -qa | grep gcc # yum install -y gcc-c++ # yum install -y cma ...
- Centos7编译安装lnmp(nginx1.10 php7.0.2)
我使用的是阿里云的服务器 Centos7 64位的版本 1. 连接服务器 这个是Xshell5的版本 安装好之后我们开始连接服务器 2. 安装nginx 首先安装nginx的依赖 yum instal ...
- 编译安装MySQL-5.7.13
编译安装MySQL-5.7 cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影 ...
- 转:Linux 编译安装 Mysql5.7
http://broqiang.com/2017/04/18/Mysql-Install-5.7.18-Linux-Compile/ 原文 Linux 编译安装 Mysql5.7 Ubuntu 下快速 ...
随机推荐
- 前端每日实战:113# 视频演示如何用纯 CSS 创作一个赛车 loader
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/mGdXGJ 可交互视频 此视频是可 ...
- 【30分钟学完】canvas动画|游戏基础(5):重力加速度与模拟摩擦力
前言 解决运动和碰撞问题后,我们为了让运动环境更加自然,需要加入一些环境因子,比如常见的重力加速度和模拟摩擦力. 阅读本篇前请先打好前面的基础. 本人能力有限,欢迎牛人共同讨论,批评指正. 重力加速度 ...
- Nginx的工作原理
Nginx 工作原理 Nginx由内核和模块组成. Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此locat ...
- xcode制作越狱包
1.将运行目标选为iOS Device 2.Edit Scheme -> 选择 Run [App Name] -> Build Configuration下拉框中选择Release 3.生 ...
- 教你高效使用数据可视化BI软件创建医院卫生耗材运营监控大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以医院卫生耗材运营监控大屏 ...
- 基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境
基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境 前言一.环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安 ...
- 为什么你学习了scrum之后还不会实施敏捷? (敏捷学习之旅一)
标题党, 其实这个主题改为"如何能快速的学习与实施敏捷"更贴切. 我在一家大型的外资金融企业,公司最近在大面积的实施敏捷转型,我的团队首先被选为试点团队,并实施得很好,最近我也和不 ...
- 微信公众号 H5页面 支付注意细节
1. 当秘钥(AppSecretApplets) 有问题时注意是不是已经被重置过了,此时要注意获取最新的秘钥: 2. 调试时后端的东西要放在线上https 请求 不然在手机上测试时 会被拦截: ...
- node.js中http.respone.end方法概述
方法说明: 结束响应,告诉客户端所有消息已经发送.当所有要返回的内容发送完毕时,该函数必须被调用一次. 如果不调用该函数,客户端将永远处于等待状态. 语法: response.end([data], ...
- Salesforce LWC学习(十三) 简单知识总结篇一
本篇参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 随着项目的学习以及trailhead的学习,会遇见自己曾经模糊的定义或者比较浪 ...