Mysql5.7編譯調試(windows環境)


Mysql5.7編譯調試(windows環境)

必備環境

為了防止出現不必要的麻煩,perl,cmake,Bison都直接安裝在c盤,且目錄不要有空格,最好是,如:c:/perl,c:/cmake, c:/bison

  1. OS:windows7 + VS2013
  2. mysql 源碼(5.7.23)
  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

為了驗證成功,可以執行以下命令:

  1. where bison
  2. where cmake
  3. where perl

如果出現找不到,那就自己加path就行了

編譯步驟

  1. 進入mysql的源碼目錄,創建編譯文件目錄,如cbuild(D:\Project\study\mysql-5.7.23\cbuild)
  2. 打開cmake(C:\CMake\bin\cmake-gui.exe),選擇目錄,然后點configure,選擇自己的vs版本
  3. configure出現錯誤,需要下載boost
  4. 下載boost_1_59_0,下載后解壓到相應目錄,如:D:\Project\study\boost_1_59_0
  5. 重新修改Cmake,WITH_BOOST后面指定boost的目錄
  6. 點擊configure后,再點擊generate,出現如下表示成功
  7. 用vs2013打開
  8. 為了減少錯誤信息,需要修改一些源碼的編碼方式,如下文件,修改的方法很簡單,editplus工具打開以unicode編碼保存
源碼目錄\strings\ctype-czech.c 源碼目錄\strings\ctype-latin1.c 源碼目錄\strings\decimal.c 源碼目錄\mysys\thr_mutex.c 源碼目錄\storage\innobase\include\ut0mem.h 源碼目錄\sql\sql_locale.cc 
  1. 找到sql\mysqld.cc中的test_lc_time_sz()函數,將其中的DBUG_ASSERT(0)改為DBUG_ASSERT(1)
  2. 編譯過程中有free函數老報錯,可以修改下名字,主要是plugin/keyring/buffer.h,plugin/keyring/buffer.cc,socket_events.cc
  3. 運行mysqld.exe --initialize-insecure,時間可能有點長(如果出現錯誤,看一下是不是data目錄不存在,可以手動創建)
  4. 然后就可以運行mysqld.exe --console進行調試了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM