1. 准備工作
1)OS:win10 + VS2013
2)mysql 源碼(windows版):mysql-5.6.25.zip
3)perl tool:ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi
4)Cmake:cmake-3.5.0-win32-x86 .exe
5)Bison:bison-2.4.1-setup.exe
軟件列表:
安裝需要注意的幾點,一般安裝在根目錄下,如C:\Cmake C:\GnuWin32 C:\Perl64 ,當然也可以是其他目錄,一般路徑不要出現中文字符,空格及特殊字符。
Perl, Cmake, Bison安裝完事之后,將他們安裝目錄下的bin所在路徑加入環境變量中(windows環境變量添加),如C:\Cmake\bin。
保險起見我們需要驗證一下安裝是否成功:
2. 開始安裝
在任意你喜歡的盤里面創建一個用於安裝的目錄:如在D盤創建mysql然后將mysql-5.6.25.zip 解壓到該目錄下,然后在cmd中切換到安裝目錄,此處即為D:\mysql\mysql-5.6.25,記({install}=D:\mysql\mysql-5.6.25),其下包含如下文件目錄:
然后在{install}下執行以下命令:
>mkdir bld >cd bld >cmake ..
這樣你可看到類似如下的輸出:
有一些錯誤,目前也沒有解決,但其實這並不影響我們生成VS下MySQL.sln 工程文件。事實上只要看到下面這個就可以了,各種not found也不要緊。如果采用Cmake 圖形界面,其實也差不多了。這里不再贅述。
下一步我們就可以在VS2013build solution了(對應生成解決方案),但為了盡可能減少警告或錯誤,我們首先需要對下述文件進行修改:
源碼目錄\strings\ctype-czech.c
源碼目錄\strings\ctype-latin1.c
源碼目錄\strings\decimal.c
源碼目錄\mysys\thr_mutex.c
源碼目錄\storage\innobase\include\ut0mem.h
源碼目錄\sql\sql_locale.cc
修改的方法很簡單,就是將這些文件以UTF-8(帶BOM頭的)格式保存。一般使用Nodepad++工具等。
最后一步就是找到{install}\mysql-5.6.25\sql\mysqld.cc中的test_lc_time_sz()函數,將其中的DBUG_ASSERT(0)改為DBUG_ASSERT(1)即可。
至此我們就完成了將源碼轉換成VS中工程文件的目的。之后我們就可以build solution了。如果沒有錯誤說明就已經沒有問題了,一些小的警告可能是因為C++編譯器比C編譯器嚴格的緣故。下一步我們開始調試。
3. 調試
然后將mysqld工程的Debug的:屬性->調試->命令參數,設為--console --defaults-extra-file=C:\Windows\my.ini如下:
然后啟動實例
可以打斷點,進入程序跟蹤調試。
也可以在程序生成的目錄下,在命令行狀態下運行,進入調試生成目錄:
mysqld --debug --standalone
運行調試客戶端
4.注意事項
1).mysql默認查找配置文件的路徑:程序首先會分別收集windows系統目錄、C:\根目錄、執行碼所在的父目錄,如果配置了環境變量MYSQL_HOME,這個目錄也會被搜集,然后在這些目錄下進行查找my.ini文件
在c盤的根目錄下放了一個默認的windows下的my.ini文件
基目錄為e:\mysql,數據目錄為e:\mysql\data
2).mysql的基目錄和數據目錄,數據目錄要有mysql基本的系統數據庫文件
參考資料:
1.Win7+VS2010:mysql源碼編譯與調試
http://www.2cto.com/database/201407/316681.html
2.Windows+VS2012環境下編譯調試MySQL源碼
http://www.voidcn.com/blog/a809146548/article/p-4851777.html