mysql源码剖析–调试环境搭建
引言
mysql的源码支持多种平台,特别是在linux平台更是默认的关系数据库,其地位相当于windows的SQL Server。
本文的调试环境搭建建议选择在windows平台,理由如下:
- 我们搭建mysql源码调试环境,其目的是为了更好地理解mysql设计,而不是去研究linux或windows系统环境;
- windows平台的visual studio工具的高度集成和图形化,对于我们调试、跟踪其源码很方便。
1 工程搭建
1.1 必需工具安装
在windows平台安装如下工具:
- visual studio2013
- bison
- cmake
特别地,bison工具登陆 http://gnuwin32.sourceforge.net/packages/bison.htm选择如下链接下载:
1.2 源码工程搭建
首先,在github地址获取mysql5.5源码:
- https://github.com/mysql/mysql-server
注:之所以选择mysql5.5,是因为该版本源码没有最新版本那么庞大。此外,它又没更旧的版本那么过时,至少是麻雀虽小、五脏俱全,不影响我们理解mysql设计思想。
然后,通过cmake工具,生成vs工程:
注:执行cmake前,通过Notepad++将sql/sql_locale.cc文件编码修改为UTF-8带BOM。
最后,打开E:\OpenSource\mysql-server-5.5\BUILD\MySQL.sln编译完成后,选择INSTALL项目右键点击生成,就会安装到D:\installed\mysql5.5目录中:
2 调试设置
首先,在E:\OpenSource\mysql-server-5.5\BUILD\sql创建my.ini文件:
[client]
port=9191
[mysql]
default-character-set=latin1
[mysqld]
port=9090
basedir="D:/installed/mysql5.5/"
datadir="D:/installed/mysql5.5/Data/"
character-set-server=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=35M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=69M
key_buffer_size=55M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=3M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=2M
innodb_buffer_pool_size=107M
innodb_log_file_size=54M
innodb_thread_concurrency=18
最后,在vs2013中将项目mysqld设置为默认启动项目,并将命令参数设置为 --console