日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql源码安装分析_MySQL源码分析(0):编译安装及调试(转)

發(fā)布時(shí)間:2024/7/23 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql源码安装分析_MySQL源码分析(0):编译安装及调试(转) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編譯安裝

為了實(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。