mysql在mac上的编译和调试

今天正式开始漫漫长路,打算这几年用业余时间刷刷mysql5.5源代码,由于手边的书籍基本都是基于mysql5.5的,所以就不用5.7版本的代码了,更何况我更关注基本内核。因此,没有特殊指明,那么,一般都指mysql5.5版本。工作原因没有深入去了解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上的调试环境基本搭好了。

 

转载于:https://www.cnblogs.com/jackhd/p/6686235.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值