mysql源码安装分析_MySQL源码分析(0):编译安装及调试(转)
編譯安裝
為了實現MySQL的更高級別的性能調優,我們通常需要理解其內部實現機制,并對其進行優化調試。在下面的系列中,我們會分別介紹MySQL的部分內部實現機制。
首先我們介紹如何從源代碼部署一臺MySQL服務器。
1.下載MySQL Community Server源碼
http://dev.mysql.com/downloads/ 本文中演示使用的是mysql-5.5.0-m2版本。
2.安裝環境:
[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身份運行)
(1)添加運行MySQL程序的mysql用戶:
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選項,即不使用gcc優化代碼,方便于在調試時可以直接看到代碼。
--with-plugins=innobase,啟用innodb存儲引擎插件。
make && make install
此命令結束后應該能在安裝目錄下看到MySQL的文件了。
4.配置
配置MySQL的參數,可以support-files下配置文件的模板:
cp support-files/my-medium.cnf /etc/my.cnf
vi /etc/my.cnf
按照測試的需求修改,注意加上datadir和innodb等部分重要參數。
bin/mysql_install_db --user=mysql
這里安裝必要的數據庫文件,如MySQL的系統表,--user=mysql是用來運行mysql的用戶。
5.測試
簡單測試一下,運行mysqld_safe &
在RHEL系統上以root運行mysqld_safe時,會自動切換到mysql用戶來運行mysqld程序。
查看mysqld進程,記錄下啟動時參數(斜體加粗部分),為今后的調試做準備。
[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
這條命令會關閉mysqld
調試程序
安裝結束,進入正題調試環節。通常Linux下程序員傾向于使用強大的gdb(GNU Project Debugger)來調試程序,可以查看程序的內部結構、設置斷點、查看調用堆棧等。在本文中,我們嘗試使用kdbg,其本質上是帶有圖形界面的gdb,更方便直觀,但依賴 KDE桌面環境。
1.安裝
yum install kdbg
2.啟動kdbg并選擇可執行程序libexec/mysqld。不同版本的kdbg在界面上可能不同
3.在execution->arguments中輸入前面記錄mysqld的啟動參數
4.設置斷點,按F5開始運行調試
5.當程序運行到斷點時會暫停,此時可以查看輸出、調用棧和當前的堆棧值等
大小: 34.9 KB
大小: 54 KB
大小: 41.1 KB
大小: 120.6 KB
分享到:
2012-02-03 18:23
瀏覽 1528
分類:數據庫
評論
總結
以上是生活随笔為你收集整理的mysql源码安装分析_MySQL源码分析(0):编译安装及调试(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 虚拟机 字节码,JAVA虚拟机
- 下一篇: mysql5.7 存储二进制_mysql