mysql在mac上的编译和调试

今天正式开始漫漫长路,打算这几年用业余时间刷刷mysql5.5源代码,由于手边的书籍基本都是基于mysql5.5的,所以就不用5.7版本的代码了,更何况我更关注基本内核。因此,没有特殊指明,那么,一般都指mysql5.5版本。工作原因没有深入去了解mysql,既然想玩技术,工作上的技术挑战没有研究mysql内核这么直接,因此,决定用业余时间搞搞些技术活,一方面可以让自己的技术深入储备,另一方面也让自己在工作之余从技术中获得点点成就感。

选择mac平台因为简单,windows平台我也编译成功了,但网上和身边的资料基本都是基于linux的,而且mysql这种服务器程序很明显也更和linux亲和,所以决定使用mac平台玩mysql内核。OS X当然不是linux,但基本通用。

我的mac操作系统版本是10.11.1 (15B42),xcode是7.3.1。

一、 编译前需要安装的东西

当然必须是xcode了,上app store即可免费下载。

接着,是cmake,强烈建议,或者说必须使用命令行版本的cmake,所以不要去官网下载ui版本的cmake,应该去git下载,下载地址:

https://github.com/Kitware/CMake

下载后,在目录中执行老三样命令——configure,make和sudo make install即可。至此,需要的编译工具都准备好了。

二、 下载mysql源代码

同样在git中下载mysql源代码:

https://github.com/mysql/mysql-server

注意在branch的地方选择5.5版本。

三、 编译mysql

首先unzip出mysql源代码到自己新建好的目录,以下假设源代码放在自己建好的mysql目录,接着,新建目录mysql/bld,cd进入mysql/bld,执行以下命令:

cmake .. –G “Xcode” –DCMAKE_INSTALL_PREFIX=mysql/bld/install

其中,..表示mysql源代码的位置,-G “Xcode”表示生成xcode工程文件,这样就可以在xcode中编译和调试mysql,-DCMAKE_INSTALL_PREFIX则表示mysql应该安装在哪,这里建议使用绝对路径,我没有尝试过使用相对路径,而且,安装位置应该不要放在usr/local这种地方,毕竟这个编译出来的mysql版本不是拿来学习mysql应用的,而是用来折腾的,所以,还是区分开来放为好。

执行命令完成后,就会在mysql/bld中有一个xcodeprj文件,双击打开,就看到xcode的mysql工程文件了,在左上角处选择ALL_BUILD:

然后点击旁边的三角编译执行按钮,不一会就可以编译完毕。

这个时候如果去mysql/bld/install目录看,就可以看到熟悉的mysql程序目录:

其中my.cnf是我手动创建的,因为mysql会默认选择一些固定路径去寻找my.cnf,刚才说了,这个mysql是给我折腾的,所以不能打扰正常使用的mysql,顾要专门写一个my.cnf,我写在了这个目录,内容主要是使用端口33060,以及数据文件放在mysql/bld/install/data:

[mysqld]

datadir=mysql/bld/install/data

socket=mysql/bld/install/mysql.sock

port=33060

注意目录应该写绝对路径!

四、 调试msql

一开始mysql是没有任何内容的,包括数据库数据,用户名密码,因此需要做一些初始化工作:

首先,关掉正常运行的mysql:

这个是我正常使用的mysql,最好关闭。

打开生成的xcode工程,在左上角选择mysqld:

然后选择菜单product/scheme/edit scheme,弹出的对话框中,左边选择run,右边输入

也就是--defaults-file=my.cnf文件路径,--basedir=install路径。

接下来就是点击左上角的三角编译执行键把mysqld这个进程跑起来了,也就是说可以利用xcode来调试mysql了。

顺便说一下,一开始mysql是没有用户名密码的,也没有生成最近本数据库数据(如system,scheme_information等),可以在mysql/bld/install/bin中用mysqladmin命令设置用户名密码:

mysqladmin -uroot --port 33060 -p password 123456

接着在mysql/bld/install/scripts中,用

mysql_install_db -uroot -p 123456 --port 33060

初始化mysql系统数据库数据。自此,mysql在mac上的调试环境基本搭好了。

时间: 2024-08-03 02:56:29

mysql在mac上的编译和调试的相关文章

mysql在centos上的编译安装

环境:centos6.5  mysql-5.6.17.tar.gz wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz yum install -y gcc gcc-c++ gcc-c++.x86_64 bison.x86_64 libaio.x86_64 cmake.x86_64 ncurses-devel.x86_64 后面根据官方文档: MySQL 5.6 Manual 2.8.2 Installing MyS

mac上eclipse用gdb调试(转)

mac上eclipse用gdb调试 With its new OS release, Apple has discontinued the use of GDB in OS X. Since 2005 Apple has steadily been moving away from the GNU toolchain in favor of LLVM. This means that Xcode now uses LLDB instead. LLDB looks to be a very nic

ffmpeg在Mac上的编译

原帖地址:https://blog.csdn.net/minger1202/article/details/52302500 Mac上的编译 在Ubuntu系统下编译ffmpeg的源码很方便,缺少什么第三方的工具或者lib直接就可以apt-get,再不行就百度,总之解决起来很方便.最近屌丝鸟枪换Mac了,所以这里就说说Mac上如何编译ffmpeg源码以及如何解决编译过程中遇见的问题. 下载源码配置环境 首先你需要下载源码的地址:https://ffmpeg.org/download.html#g

MAC上反编译android apk---apktool, dex2jar, jd-jui安装使用(含手动签名)

前文 介绍了在Windows平台利用强大的APK-Multi-Tool进行反编译apk,修改smali源码后再回编译成apk的流程,最近受人之托,破解个apk,所幸的是所用到的这三个软件都是跨平台的,mac上也妥妥的.这里记录下在mac上所用的东西和流程. 总共需要三个软件,为了便于找到最新的版本,把官网也放后面: Apktool:http://ibotpeaches.github.io/Apktool/install/ 最新版本2.0.1 dex2jar: https://github.com

MAC上反编译android apk-apktool, dex2jar, jd-jui安装使用

前文 介绍了在Windows平台利用强大的APK-Multi-Tool进行反编译apk,修改smali源码后再回编译成apk的流程,最近受人之托,破解个apk,所幸的是所用到的这三个软件都是跨平台的,mac上也妥妥的.这里记录下在mac上所用的东西和流程. 总共需要三个软件,为了便于找到最新的版本,把官网也放后面: Apktool:最新版本2.0.1 dex2jar: 最新版本2.0 JD-GUI: 最新版本1.4.0 这三个软件Apktool的安装稍微麻烦点,其他都还好,基本上下载下来解压了就

MySql在Mac上的安装配置

一.下载安装 官网下载社区版dmg安装文件: https://dev.mysql.com/downloads/mysql/ 1.执行安装文件,按步骤完成安装. 2.安装完成后终端输入: mysql --version; ----显示版本号说明正常,若显示command not found,在终端输入如下,"/usr/local/mysql/bin/mysql"为mysql默认安装路径: $ cd /usr/local/bin/ $ sudo ln -fs /usr/local/mysq

MAC 上 protobuf 编译

#!/bin/bash #选本替换成https://github.com/google/protobuf/releases/tag/v2.6.1 echo Building Google Protobuf for Mac OS X / iOS. echo Use 'tail -f build.log' to monitor progress. ( PREFIX=`pwd`/protobuf mkdir ${PREFIX} mkdir ${PREFIX}/platform XCODEDIR=`xc

TiDB之mac上搭建及调试技巧

此文目的 由于本人最近已经成为TiDB的粉丝,所以就开始各种研究TiDB的源码,研究源码这个事情,首先就需要在自己电脑上不断的调试及修改.TiDB本身的代码是非常容易编译和调试的,但是要把PD.TiKV集群同时在本机上建立起来,还是有一点难度的.好在pingcap官方提供了docker-compose搭建集群的方式,可以快速的在个人电脑上启动一个TiDB的集群.但是,我要的不只是一个集群,我还希望在我的mac上实时编译调试TiDB服务,这个TiDB服务能够和docker-compose的集群里的

npm grunt在mac上编译bootstrap源码

因为gmu需要用编译的方式下载,于是联想到bootstrap什么less sass编译 less先学,据说基于js编译和less编译器,安装起来详细, sass据网上介绍基于ruby, 以下为在mac上下载编译boostrap过程 1.安装node.js brew install node.js就可以了 2.sudo npm install bootstrap(记住npm命令需要加sudo) 3.进入bootstrap sudo npm install(根据package.json编译)(再次提