从事DBA工作多年

MYSQL源码也是头一次接触

尝试记录下自己看MYSQL5.7源码的历程

申明:个人Python编程很溜,但是C++还停在白痴水平,源码理解方面有点弱,如发现有错误的地方,轻喷

目录:

51ak带你看MYSQL5.7源码1:main入口函数 (2018-03-21)

51ak带你看MYSQL5.7源码2:编译现有的代码 (2018-03-22)

51ak带你看MYSQL5.7源码3:修改代码实现你的第一个Mysql版本 (2018-03-23)

51ak带你看MYSQL5.7源码4:实现SQL黑名单功能(2018-04-11)

现在把刚才在VSCODE里看到的源码,安装成服务。

测试机:CENTOS6 (虚机配置为4c+4g ),

YUM安装相关组件

yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison

执行完成后看一下现有的BOOTST版本 如果有删掉

root@wjz-- ~]# rpm -qa boost*
boost-filesystem-1.41.-.el6.x86_64
boost-system-1.41.-.el6.x86_64
[root@wjz-- ~]# yum -y remove boost-*
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Remove Process
Resolving Dependencies
--> Running transaction check

上传我们编辑好的文件到测试机,放在/work目录下

拷贝安装BOOST

root@wjz-- mysql-server]# ll
total
drwxr-xr-x. root root Mar boost_1_59_0
-rw-r--r--. root root Dec : filter-provides.sh
-rw-r--r--. root root Dec : filter-requires.sh
drwxr-xr-x. root root Mar mysql-5.1.
drwxr-xr-x. root root Mar mysql-5.7.
-rw-r--r--. root root Dec : mysql.spec
[root@wjz-- mysql-server]# cp -r boost_1_59_0 /usr/local/boost

执行以下脚本

groupadd mysql
mkdir /home/mysql
mkdir /home/mysql/data
useradd mysql -g mysql -d /home/mysql cd mysql-5.7./
mkdir debug
cd debug

开始MAKE

cmake .. \
-DCMAKE_INSTALL_PREFIX=/home/mysql \
-DMYSQL_DATADIR=/home/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT= \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_ARCHIVE_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DDOWNLOAD_BOOST= \
-DWITH_BOOST=/usr/local/boost

出现 下图表示成功。

make -j 4

漫长的等待,编译成功(测试机性能太次)

下面安装和初始化:

make install
make clean
rm -f CMakeCache.txt
cd /home/mysql
chown -R mysql:mysql .
ll
bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data #这一步记住生成的密码,一会要用
ll data/
vim /etc/my.cnf
vim mysql.server
cp mysql.server /etc/init.d/mysqld3306
chmod /etc/init.d/mysqld3306
cd ..
ll
service mysqld3306 start
bin/mysql -h127.0.0. -uroot -p

好,今天到此为止

51ak带你看MYSQL5.7源码2:编译现有的代码的更多相关文章

  1. 51ak带你看MYSQL5.7源码3:修改代码实现你的第一个Mysql版本

    从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...

  2. 51ak带你看MYSQL5.7源码1:main入口函数

    从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...

  3. 51ak带你看MYSQL5.7源码4:实现SQL黑名单功能

    博客迁移至: https://www.dboop.com/ 从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 申明:个人Python编程很溜,但是C++还停 ...

  4. MYSQL5.5源码包编译安装

    MYSQL5.5源码安装首先安装必要的库yum -y install gcc*###### 安装 MYSQL ######首先安装camke 一.支持YUM,则yum install -y cmake ...

  5. MYSQL5.7源码包编译安装

    Centos下用cmake编译安装MySQL 5.7安装依赖包yum -y install gcc gcc-c++ ncurses ncurses-devel cmake下载相应源码包cd /usr/ ...

  6. MYSQL5.6源码包编译安装

    linux下用cmake编译安装mysql-5.6.35cmake编译安装mysql的方法:#useradd -M mysql -s /sbin/nologin#yum install -y cmak ...

  7. Chrome自带恐龙小游戏的源码研究(七)

    在上一篇<Chrome自带恐龙小游戏的源码研究(六)>中研究了恐龙的跳跃过程,这一篇研究恐龙与障碍物之间的碰撞检测. 碰撞盒子 游戏中采用的是矩形(非旋转矩形)碰撞.这类碰撞优点是计算比较 ...

  8. Chrome自带恐龙小游戏的源码研究(完)

    在上一篇<Chrome自带恐龙小游戏的源码研究(七)>中研究了恐龙与障碍物的碰撞检测,这一篇主要研究组成游戏的其它要素. 游戏分数记录 如图所示,分数及最高分记录显示在游戏界面的右上角,每 ...

  9. Chrome自带恐龙小游戏的源码研究(六)

    在上一篇<Chrome自带恐龙小游戏的源码研究(五)>中实现了眨眼睛的恐龙,这一篇主要研究恐龙的跳跃. 恐龙的跳跃 游戏通过敲击键盘的Spacebar或者Up来实现恐龙的跳跃.先用一张图来 ...

随机推荐

  1. trigger click 和 click 的区别??

    trigger click 和 user click 有什么区别吗? 好像没有的.直到发现了这样一段代码. <button class="btn1">Button< ...

  2. Python基础学习参考(六):列表和元组

    一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素 ...

  3. R︱shiny实现交互式界面布置与搭建(案例讲解+学习笔记)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 看了看往期的博客,这个话题竟然是第 ...

  4. Android常见Crash原因总结(二)

    Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的. 这里把Android平台程序崩溃的各种类型做一个简述和原因列举. 1.ANR(可见ANR): 发生场景 ...

  5. HI3531例子程序说明

    Hisilicon Hi35xx 样例程序使用说明 1. 样例程序文件结构说明    sample            # MPP 样例程序     |-- common       # hi35x ...

  6. Java中的switch语句后面的控制表达式的数据类型

    Java中的switch语句后面的控制表达式的数据类型 1.byte 2.char 3.short 4.int 5.枚举类型 6.Java 7允许java.lang.String类型

  7. Linux系统安装软件出错

    root@youhaidong-Edge-E545:/home/youhaidong# apt-get install install_flash_player_11_linux.x86_64.tar ...

  8. TensorFlow MNIST初级学习

    MNIST MNIST 是一个入门级计算机视觉数据集,包含了很多手写数字图片,如图所示: 数据集中包含了图片和对应的标注,在 TensorFlow 中提供了这个数据集,我们可以用如下方法进行导入: f ...

  9. pat 1001-1010

    最近有点神志无知 命运中很多事情真是奇妙 我必须改变自己的状态 1001 简单的模拟 #include<bits/stdc++.h> using namespace std; int ma ...

  10. JDBCTemplate简化JDBC的操作(二)

    一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core. ...