mysql 5.7.18 源码安装笔记
之所以贴出这样一篇笔记呢?主要是因为很久之前,源码安装MySQL的时候,碰到了太多太多的坎坷。
如果你有兴趣进行源码安装,那么请不要以这篇文章为标准,因为每个人的及其环境等其他因素还是差距比较大的。
但可以作为一篇流程参考文档,其中的坑点总结,希望能帮助大家绕过一些不必要的麻烦!
坑点
1 5.7.6以后安装必须有boost支持
2 权限和路径比较坑,步骤较多,如果中间错了,
先检查之前执行命令时权限是否正确,
再检查每一步操作的路径是否符合自己本地要求
3 很多人傻傻的找不到源码包在哪里,两个都是源码包
只不过下一个包含boost依赖

准备
1、首先安装依赖包
yum install -y gcc gcc-c++ ncurses-devel perl openssl-devel
最最重要的是,不要忘了安装openssl-devel
2、安装cmake
sudo yum install cmake
1 mysql迅雷下载地址:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
2 解压:
sudo tar xzvf mysql-boost-5.7.18.tar.gz -C /usr/local/Mysql/
注:稍后我们需要建立/usr/local/mysql,
所以这里要建造一个Mysql,当然建造其他的也可以,
和之后的/usr/local/mysql 能区分开就好
3 先创建用户mysql并将mysql用户添加到mysql组下
groupadd mysql
useradd -g mysql mysql
将解压的文件的权限修改为mysql:mysql
sudo chown mysql:mysql /usr/local/Mysql/mysql-5.7.18
注:创建用户 sudo useradd -M -s /sbin/nologin mysql
4 安装依赖包:
sudo apt install -y build-essential cmake libncurses5-dev bison
编译
1 进入源码解压目录
cd /usr/local/Mysql/mysql-5.7.18/
2 创建编译后的文件存储位置,并进入
(1)sudo mkdir build //创建build目录
(2)cd build //进入build目录
3 指定cmake参数
sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DDEFAULT_CHARSET=utf8mb4 .. -DWITH_BOOST=/usr/local/src/mysql-5.7.18/boost/boost_1_59_0
.. -DMYSQL_DATADIR=/data/mysql/data
安装的路径有点坑, 下面这条命令中有两个 ".."
如果不写的话,会提示没有 "/usr/local/mysql"
"/usr/local/Mysql/mysql-5.7.18/boost/boost_1_59_0"
由于对linux还不是特别熟悉,我估计应该是执行cmake时,会从根目录开始找配置的参数目录,
而".."代表根目录

4 sudo make
编译完成之后,和网上视频教程讲述的一致,效果如下:

5 执行 sudo make install

6 检查是否安装成功:

文件编译好之后,就需要安装数据库并执行配置了!
安装Mysql
1 配置环境变量(非必须):
创建变量文件,可以创建在profile,也可以创建在profile.d中

写入配置信息

执行生效环境变量,注意:这一步必须退到根目录下执行,

2 创建配置文件
在mysql的安装目录下创建配置文件目录/etc,
在/etc下创建my.cnf

3 编辑my.cnf
有些目录 /data /log /run 可能没有,则需要手动创建
my.cnf
[client]
[mysqld]
basedir=/usr/local/mysql
# this direct impossible is nothing,we need to build!
datadir=/usr/local/mysql/data
# The document was not informed
socket=/tmp/mysql.sock
character_set_filesystem = utf8mb4
character_set_server = utf8mb4
symbolic-links=0
# run and log is must!
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/run/mysqld.pid
4 将mysql目录下的文件权限,全部赋给mysql,
否则会导致初始化后,/data下没有任何内容
5 进行初始化
sudo /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf
--initialize --user=mysql
6 配置启动服务

7 查询mysql的初始密码,在日志文件中随机生成的;
后面的路径需要注意是自己的
sudo grep 'root'@'localhost' /usr/local/mysql/log/mysqld.log
初始密码:7wff5n<w%j_S

8 修改root密码
ALTER USER root@localhost IDENTIFIED BY 'new password';
9 连接数据库
mysql -h IP地址 -uroot -p 【回车后输密码】
GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDENTIFIED BY 'itoffice' WITH GRANT OPTION;
QQ 群:219537016 虽然没啥人气,群主经常装死中!
同事建立了一个微信讨论群,群主最喜欢能解决问题时,出来冒泡,解决不了时,装死!

mysql 5.7.18 源码安装笔记的更多相关文章
- MySQL学习之路 一 : MySQL 5.7.19 源码安装
MySQL 5.7.19 源码安装 查看系统: # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 安装依赖包 # yum - ...
- mysql 在cento下源码安装
虚拟机改为网络地址转换 (NAT) service network restartping www.baidu.com rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm ...
- 数据库的硬迁移和mysql 5.5.38源码安装
场景:一台服务器出现了故障,需要把数据库迁移到另一台服务器上,由于数据效大,直接压缩数库的数据目录(在数据库DOWN的情况下)数据库版本mysql 5.5.38安装方式:源码安装思路:在另一台服务器上 ...
- LNMP架构下的nginx、mysql、php的源码安装
一.LNMP的介绍 LNMP就是Linux+Nginx+Mysql+Php这种网站服务架构.Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统,常见版本有:centos.ubun ...
- linux应用之Lamp(apache+mysql+php)的源码安装(centos)
Linux+Apache+Mysql+Php源码安装 一.安装环境: 系统:Centos6.5x64 Apache: httpd-2.4.10.tar.gz Mysql: mysql-5.6.20-l ...
- mysql-5.7.14 源码安装笔记
安装编译 下载源码 mysql-5.7.14.tar.gz 解压定义安装变量 cd /usr/local/src mysql_version="mysql-5.7.14" tar ...
- MySQL 5.6.26源码安装
5.6.26源码安装包:http://pan.baidu.com/s/1kUl44WRcmake安装包链接:http://pan.baidu.com/s/1c0LuwJA 操作系统版本:CentOS ...
- mysql 5.7.11 源码安装
mysql5.711安装 1.安装boost包下载地址http://sourceforge.net/projects/boost/files/boost/ 2.解压boost_1_59_0.tar.g ...
- linux-2.6.18源码分析笔记---信号
一.相关数据结构及其位置(大致浏览即可,介绍流程时再来仔细看) 1.1 进程描述符struct task_struct所在目录:include\linux\sched.h 关注task_struct中 ...
随机推荐
- [LuoguP1141]01迷宫
1141 01迷宫 题目描述 有一个仅由数字0与1组成的n×n格迷宫.若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上. 你的任务 ...
- 【办公】Microsoft Office 2016 专业增强版下载及永久激活-亲测分享
Win7 x64,安装 Office 2016. 1. 下载 Office 2016,用迅雷网上下载飞快.(这里分享我的下载链接,2.39G用迅雷分分钟就下好了) 2. 按 此博客 ,安装激活工具. ...
- svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了. 错误如下: 解决方法:清空svn的队列 1.下载sqlite3.exe 2.找到你项目的.svn文件,查看是否存在wc.d ...
- oracle删除一个表内的重复数据,
查询以及删除一个数据库表内的重复数据. 1.查询表中的多余的重复记录,重复记录是根据单个字段来判断的. select * from biao where id in (select id from b ...
- MySQL数据库主从(主主)配置
一.系统环境: centos7.4 (centos 1708) mysql 5.7 master主机的IP地址为192.168.159.50 slave主机的IP地址为192.168.159.51 M ...
- 模块socket使用
什么是socket:socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.我们无需再去深入理解tcp/udp协议,按照socket的规定去使用就行了. 首先一个c/s架构:分为两 ...
- flex 遇到white-space:nowrap
背景,做一个前面图片宽度固定,后面宽度自适应,使用到了flex布局,但是想让后面div里文字不换行,超出以点点表示时,这时布局就乱了,查了下,原来flex布局与white-space:nowrap有影 ...
- QString, Std::string, char *相互转换
Qt 库中对字符串类型进行了封装,QString 类提供了所有字符串操作方法,给开发带来了便利. 由于第三方库的类型基本上都是标准的类型,即使用std::string或char *来表示字符 (串) ...
- 用HANA STADIO 开发ABAP程序
Help-->Install New Software-->ADD NAME: hana_on_mars Location: https://tools.hana.ondemand.com ...
- [Git add . ] 遇到The file will have its original line endings in your working directory 解决办法
1.在新项目中使用[ git add . ]时出现: warning: LF will be replaced by CRLF in ...... The file will have its ori ...