方法/步驟
1
在安裝mysql資料庫伺服器前,確保你的linux系統是可以連接網路的,下面我們將通過源碼方式來安裝mysql首先通過putty登入進你的Linux系統,確保系統中已經安裝的gcc c++ 等編譯環境,因為mysql從5.5版本開始是使用cmake編譯的,如果三個環境都沒安裝,可以使用下面的命令進行安裝:yum -y install make gcc-c++ cmake bison-devel ncurses-devel
2
查找系統里是否已經安裝了mysql資料庫的相關組件,使用命令:rpm -qa | grep mysql 進行查找,如果查找到,可以使用下面命令進行強制卸載:rpm -e --nodeps 包名
如果你當時在安裝Linux系統時,使用的默認的安裝選項,這一步可以跳過;
B. 如何在Windows下編譯或調試MySQL
用vs code 就可以了。
Visual Studio Code
Visual Studio Code(簡稱VS Code)是由微軟開發的,同時支持Windows、Linux和macOS操作系統的開源文本編輯器。它支持調試,內置了Git 版本控制功能,同時也具有開發環境功能,例如代碼補全(類似於IntelliSense)、代碼片段、代碼重構等。該編輯器支持用戶自定義配置,例如改變主題顏色、鍵盤快捷方式、編輯器屬性和其他參數,還支持擴展程序並在編輯器中內置了擴展程序管理的功能。
安裝LLDB
LLDB是LLVM編譯器的一部分,推薦使用Homebrew安裝LLVM工具集,不建議使用系統自帶的LLDB,安裝前必須先創建證書否則無法安裝,步驟如下:
創建完成後,開始安裝LLVM
brew install llvm --with-python@2--with-lldb
安裝插件
VS Code自帶有debug功能,這里我推薦使用LLDB Debugger插件。
接下來,為項目配置調試參數。
配置調試參數
使用VS Code打開MySQL源碼目錄,在側邊欄選擇debug欄目,添加配置,program輸入需要調試的程序路徑,這里選擇你編譯好的mysqld路徑,args輸入程序啟動所需的參數,通常會指定mysqld的配置文件。這樣就配置好了,是不是很簡單。
啟動調試
點擊啟動按鈕,啟動後如果沒有設置斷點會mysqld會正常啟動,如果觸發了斷點會如下圖顯示。
整個調試窗口基本分為六部分,所有的調試操作都在這里完成:
1:顯示變數信息
2:設置重點關注的變數
3:顯示調用棧信息
4:設置斷點信息,在代碼行號前也可以設置斷點
5:代碼顯示區域,上方是調試按鈕,包括 continue/stepover/step in/step out/restart/stop
6:調試終端輸入輸出區
斷點設置
在代碼行號前點擊即可在該行為設置斷點,也可以根據條件設置斷點。以設置ConditionalBreakpoint為例,當程序啟動後會按照你設置的條件表達式判斷是否觸發斷點。
Conditional Breakpoint這種方式用在目標變數達到某條件時觸發斷點,其餘則跳過繼續執行。比如:設置變數等於目標表名時觸發斷點,其餘表則跳過,相對函數名斷點省去很多手工跳過操作。
遠程調試
假如你想調試遠程Linux伺服器上的MySQL上面的方法就不合適了,這時需要遠程調試。lldb和gdb都支持遠程調試,這里以lldb為例。
需要先在遠程主機上安裝lldb,使用yum安裝,源地址在這里http://mirror.centos.org/centos/7/sclo/x86_64/rh
remote$ yum install -y llvm-toolset-7
安裝完成後,啟動lldb-server
remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform --listen"*:9191"--server
接下來,在VS Code調試界面中新增配置項。
{
"type":"lldb",
"request":"attach",
"name":"Remote attach",
"program":"~/mysql5626/usr/local/mysql/bin/mysqld",
"pid":"<target_pid>",
"initCommands": [
"platform select remote-linux",
"platform connect connect://<remote_host>:9191"
],
"sourceMap": {
"/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26":"/Users/hongbin/workbench/mysql-server"
}
},
program:本機也要拷貝一份目標程序,載入
pid:填寫遠程主機的mysqld進程id
sourceMap:填寫mysqld編譯的代碼路徑與本機代碼庫路徑的映射,這樣調試時代碼才可以和程序關聯在一起看
注意:記得調試前將代碼切換到與目標程序版本一致的branch
C. mySQL能用在ARM板上面嗎,使用起來方不方便因為需要在windows上生成mySQL資料庫文件然後傳到ARM上使用
1、mysql允許交叉編譯,可以用arm編譯器編譯,在網路文庫中有篇文章是寫移植到ARM平台的:《Ubuntu下編譯ARM平台QtEmbedded的MySQL和MySQL插件》
2、我用mips交叉編譯器編譯過mysql-5.1.34,遇到的情況和那篇文章差不多。
3、我的編譯過程:
1)先編譯一份x86版本的mysql(因為交叉編譯過程中要用到一個x86版本的工具gen_lex_hash sql)
2)配置交叉編譯環境,用以下選項和參數:
ac_cv_sys_restartable_syscalls='no'
--host=mipsel-linux
--with-named-curses-libs=<你的 交叉編譯器中libncurses.a的全路徑>
3)make到gen_lex_hash錯誤時,將x86編譯結果中的gen_lex_hash拷過來
4)再啟動make,到sql_parse.cc錯誤時,修改這個文件:
vi ../sql/sql_parse.cc
將那個出錯的宏定義一下:
#define STACK_DIRECTION 1
5)再make就可以了。
D. 如何編譯搭建php7+nginx+mysql
在Windows下配置搭建PHP環境的步驟:
一、准備工作-下載所需軟體
Apache httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
PHP php-5.3.10-Win32-VC9-x86.zip
MySQL mysql-5.5.20-win32.msi
二、安裝軟體
1、安裝Apache: 雙擊安裝,與安裝其他Windows軟體沒有什麼區別,在填Server Infomation時,並沒有特殊規定,只要輸入的信息符合格式即可。
安裝完成之後,在瀏覽器輸入http://localhost,如果顯示It Works!,表示Apache安裝成功。
2、安裝PHP:將php-5.3.10-Win32-VC9-x86.zip解壓到一個目錄即可。
3、安裝MySQL:雙擊安裝,如果需要更改安裝目錄,則在Choose Setup Type選擇Custom
安裝完成後開始配置MySQL,全部保持默認選項即可,但最好把MySQL默認編碼改為utf8,在Modify Security Settings選項中設置密碼,輸入兩次密碼即可完成,最後點Execute完成配置。
三、整合Apache+PHP+MySQL
Apache : 首先修改Apache的配置文件,讓Apache支持解析PHP文件。Apache配置文件在Apache安裝目錄的conf目錄下的httpd.conf。
1. 讓Apache可以解析php文件,在配置文件中找到
#LoadMole vhost_alias_mole moles/mod_vhost_alias.so
在下一行添加 (綠色的位置是根據PHP的所在目錄而定的)
LoadMole php5_mole "D:/Develop/PHP/php5apache2_2.dll"PHPIniDir "D:/Develop/PHP"AddType application/x-httpd-php .php .html .htm
2. 在配置文件中找到
DirectoryIndex index.html
改為
DirectoryIndex index.php index.html
3. 修改Apache站點目錄,在配置文件中找到(Apache安裝的目錄不同,顯示的值不一樣)
DocumentRoot "D:/Develop/Apache2.2/htdocs"
改為
DocumentRoot "D:/Workspace/PHP"
再找到
<Directory "D:/Develop/Apache2.2/htdocs">
改為
<Directory "D:/Workspace/PHP">
PHP : 把php.ini-development改名為php.ini,作為PHP的配置文件。修改php.ini
1. 設置PHP擴展包的具體目錄,找到
; On windows:; extension_dir = "ext"
改為 (值是ext文件夾的目錄)
; On windows: extension_dir = "D:/Develop/PHP/ext"
2. 開啟相應的庫功能,找到需要開啟的庫的所在行
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_xmlrpc.dll
去掉前面的分號(注釋),即改為
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll
3. 設置時區,找到
;date.timezone =
改為
date.timezone = Asia/Shanghai
配置完成,檢測一下配置是否成功。重啟Apache,在站點目錄下新建文件index.php,輸入內容。