mysql源码安装分析_MySQL源码分析(0):编译安装及调试(转)
編譯安裝
為了實(shí)現(xiàn)MySQL的更高級(jí)別的性能調(diào)優(yōu),我們通常需要理解其內(nèi)部實(shí)現(xiàn)機(jī)制,并對(duì)其進(jìn)行優(yōu)化調(diào)試。在下面的系列中,我們會(huì)分別介紹MySQL的部分內(nèi)部實(shí)現(xiàn)機(jī)制。
首先我們介紹如何從源代碼部署一臺(tái)MySQL服務(wù)器。
1.下載MySQL Community Server源碼
http://dev.mysql.com/downloads/ 本文中演示使用的是mysql-5.5.0-m2版本。
2.安裝環(huán)境:
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# gcc -v
......
Gcc-4.1.2 x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
3.編譯安裝(以下命令全部以root身份運(yùn)行)
(1)添加運(yùn)行MySQL程序的mysql用戶(hù):
groupadd mysql
useradd mysql –g mysql
CFLAGS="-g –O0" CXX=gcc CXXFLAGS="-g –O0 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=Folder_you_want_to_install --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile? --enable-assembler --with-plugins=innobase --with-fast-mutexes
建議使用-O0選項(xiàng),即不使用gcc優(yōu)化代碼,方便于在調(diào)試時(shí)可以直接看到代碼。
--with-plugins=innobase,啟用innodb存儲(chǔ)引擎插件。
make && make install
此命令結(jié)束后應(yīng)該能在安裝目錄下看到MySQL的文件了。
4.配置
配置MySQL的參數(shù),可以support-files下配置文件的模板:
cp support-files/my-medium.cnf /etc/my.cnf
vi /etc/my.cnf
按照測(cè)試的需求修改,注意加上datadir和innodb等部分重要參數(shù)。
bin/mysql_install_db --user=mysql
這里安裝必要的數(shù)據(jù)庫(kù)文件,如MySQL的系統(tǒng)表,--user=mysql是用來(lái)運(yùn)行mysql的用戶(hù)。
5.測(cè)試
簡(jiǎn)單測(cè)試一下,運(yùn)行mysqld_safe &
在RHEL系統(tǒng)上以root運(yùn)行mysqld_safe時(shí),會(huì)自動(dòng)切換到mysql用戶(hù)來(lái)運(yùn)行mysqld程序。
查看mysqld進(jìn)程,記錄下啟動(dòng)時(shí)參數(shù)(斜體加粗部分),為今后的調(diào)試做準(zhǔn)備。
[root@localhost ~]#ps aux | grep mysql
mysql??? 12261? 0.0 13.0 1746120 200992 ?????? Tl?? Apr19?? 0:01 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --log-error=/usr/local/mysql/var/localhost.localdomain.err --pid-file=/usr/local/mysql/var/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root???? 12286? 0.0? 0.1 109396? 2276 pts/3??? S+?? Apr19?? 0:00 mysql
root???? 22624? 0.0? 0.0? 61192?? 748 pts/6??? S+?? 10:20?? 0:00 grep mysql
mysqladmin –u root –p shutdown
這條命令會(huì)關(guān)閉mysqld
調(diào)試程序
安裝結(jié)束,進(jìn)入正題調(diào)試環(huán)節(jié)。通常Linux下程序員傾向于使用強(qiáng)大的gdb(GNU Project Debugger)來(lái)調(diào)試程序,可以查看程序的內(nèi)部結(jié)構(gòu)、設(shè)置斷點(diǎn)、查看調(diào)用堆棧等。在本文中,我們嘗試使用kdbg,其本質(zhì)上是帶有圖形界面的gdb,更方便直觀,但依賴(lài) KDE桌面環(huán)境。
1.安裝
yum install kdbg
2.啟動(dòng)kdbg并選擇可執(zhí)行程序libexec/mysqld。不同版本的kdbg在界面上可能不同
3.在execution->arguments中輸入前面記錄mysqld的啟動(dòng)參數(shù)
4.設(shè)置斷點(diǎn),按F5開(kāi)始運(yùn)行調(diào)試
5.當(dāng)程序運(yùn)行到斷點(diǎn)時(shí)會(huì)暫停,此時(shí)可以查看輸出、調(diào)用棧和當(dāng)前的堆棧值等
大小: 34.9 KB
大小: 54 KB
大小: 41.1 KB
大小: 120.6 KB
分享到:
2012-02-03 18:23
瀏覽 1528
分類(lèi):數(shù)據(jù)庫(kù)
評(píng)論
總結(jié)
以上是生活随笔為你收集整理的mysql源码安装分析_MySQL源码分析(0):编译安装及调试(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 虚拟机 字节码,JAVA虚拟机
- 下一篇: linux cmake编译源码,linu