## 1、下载MySQL源代码
![](https://i.vgy.me/sa9xRF.png)
>[success] 下载地址:[https://dev.mysql.com/downloads/mysql/5.7.html#downloads](https://dev.mysql.com/downloads/mysql/5.7.html#downloads),下载到自己存放的目录当中
```
tar -zxf mysql-5.7.26.tar.gz
cd mysql-5.7.26
```
## 2、安装依赖
```
sudo apt install make cmake gcc g++ perl bison libaio-dev libncurses5 libncurses5-dev libnuma-dev
```
>[success] 安装好这些依赖后,如果在编译的时候还有提示依赖错误的,不要慌!谷歌一个一个慢慢来!
## 3、检测安装环境
```
cmake .
```
>[danger] 提示-- MySQL currently requires boost\_1\_59\_0
> 现阶段sudo apt install libboost-all-dev安装的版本为58,因此需要手动安装boost\_1\_59
> 下载boost\_1\_59\_0源代码
> 地址:[https://sourceforge.net/projects/boost/files/boost/1.59.0/boost\_1\_59\_0.tar.gz](https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz)
> tar xzvf boost\_1\_59\_0.tar.gz
> cd boost\_1\_59\_0
> sudo ./bootstrap.sh
> sudo ./b2 install
> 不管怎么说,这个安装了准没错
## 4、开始编译
```
cd mysql-5.7.26
```
```
cmake . -DBUILD_CONFIG=mysql_release -DCPACK_MONOLITHIC_INSTALL=ON -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQLX_TCP_PORT=33060 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DMYSQLX_UNIX_ADDR=/usr/local/mysql/mysqlx.sock -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DENABLE_DOWNLOADS=ON -DWITH_BOOST=system
```
```
sudo make
sudo make install
```
## 5、初始化
### 创建mysql组跟用户
```
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
```
### 更改mysql目录权限
```
cd /usr/local/mysql
sudo chown -R mysql .
sudo chgrp -R mysql .
```
### 初始化mysql,生成root用户的临时密码,如:root@localhost: Cgs<1\*gDP=i9
```
sudo bin/mysqld --initialize --user=mysql
```
### 开启SSL功能
```
sudo bin/mysql_ssl_rsa_setup
```
### 更改mysql目录权限
```
sudo chown -R mysql .
sudo chgrp -R mysql .
```
### 测试启动mysql
```
sudo bin/mysqld_safe --user=mysql
```
### 启动mysql,输入临时密码后更改密码,停止mysql
```
sudo support-files/mysql.server start
sudo bin/mysql -u root -p
alter user 'root'@'localhost' identified by 'root';
sudo support-files/mysql.server stop
```
### 将mysql服务放置init.d目录下
```
sudo cp support-files/mysql.server /etc/init.d/mysql.server
```
### service控制mysql服务
```
service mysql.server start|stop|restart|reload|force-reload|status
```
![](https://i.vgy.me/mbHIC0.png)
>[danger] 途中有什么问题,谷歌与百度一一解决搞定!另外啊,MySQL配置my.cnf 在MySQL5.7.1之后没有默认了,它不需要依赖my.cnf来启动,可以 mysql --verbose --help |grep -A 1 'Default options' 来查看默认使用的my.cnf
```
读取顺序:/etc/my.cnf > /etc/mysql/my.cnf > /usr/etc/my.cnf > ~/.my.cnf
```
- 基础
- 安装PHP
- 语言基础
- 变量
- 变量操作
- 超全局数组变量
- 变量作用域
- 变量传值方式
- 常量
- 数据类型
- 运算符
- 流程控制
- 文件包含
- 错误处理
- 字符串操作
- 数组
- 函数
- 进阶
- 面向对象
- 提高
- TP
- 安装项目
- 框架基础知识
- 命令创建模块
- URL生命周期
- 路由操作
- Request请求类
- 参数绑定
- 依赖注入
- 模板操作
- 查询操作
- 添加操作
- laravel
- ☆目录结构
- CSRF攻击
- ☆路由
- ☆控制器
- ☆请求类
- ☆视图
- ☆模板继承
- ☆表单验证
- ☆DB类
- ☆模型
- ☆数据库迁移
- 类型、修饰、索引
- ☆数据填充
- ☆数据分页
- ☆session处理
- ☆中间件
- ☆缓存操作
- ☆文件上传
- ☆接口操作
- ☆扩展插件
- restful
- 工作
- 工作记录
- QQ登录
- 新浪登录
- 微信登录
- sphinx搜索
- 数据库
- MySQL
- ☆数据库操作
- ☆数据表操作
- ☆数据的操作
- 待修改
- 优化
- 存储引擎选择
- 列表类型选择
- 范式
- 慢日志查询
- 精准时间记录查询
- 计划任务 explain
- 索引
- 索与事务
- 查询缓存
- 存储过程
- 触发器
- 分区
- 分表
- sphinx
- 读写分离
- 搜索优化
- 网站静态化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服务器
- Linux
- 目录结构
- 常用命令
- VIM编辑器
- 用户与用户组
- 权限管理
- 运行级别
- 网络模式
- ssh
- 软件安装
- 计划任务
- Ubuntu
- 编译PHP7.3
- 编译MySQL
- 编译Nginx
- apache虚拟机配置
- 安装composer
- Nginx
- Git