因为想分析下mysql中一些操作的内部执行过程,单纯的看源码太枯燥了,所以决定结合mysql的执行过程来分析,mysql作为一款成熟的数据库软件,在设计的时候就考虑到了调试的问题,只是想开启调试模式的话,要编译源代码不能直接用rpm的安装方式,我是编译安装的5.7.16的版本,这里记录一下安装过程,以后再用就不用四处查资料了。
这里记录的只是最简单的编译安装模式,只是开启了DEBUG模式。首先编译过程中会产生大于3.6G左右临时文件,时间大约花费30分钟左右。
编译或者安装过程中如果出现任何错误,推荐删除缓存文件,从头再来,笔者抱着侥幸的心试过,后期登录数据库的时候出现了段错误,深层原因是线程违规访问了数据,最根本原因是缺失依赖导致没走mysql的设置文件,走了默认设置,出现了类似不兼容的问题。
1.首先检查必须的依赖软件冲突:
检查mariadb,这个如果不卸载,安装完毕之后启动服务会出错。
[root@5201351 ~]# rpm -qa|grepmariadb
mariadb-libs-5.5.41-2.el7_0.x86_64
[root@5201351 ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
检查是否安装了必须的依赖,如果缺失,在cmake的时候会出现各种错误,gcc、gcc-c++、bison-devel、ncurses-devel。
2.首先下载源码包:wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.1