天天看點

源代碼編譯安裝MySQL5.5.25a源碼編譯安裝MySQL-5.5

       需要事先準備cmake-2.8.8.tar.gz與mysql-5.5.25a.tar.gz兩個包放入linux /usr/local/src中

    cmake的重要特性之一是其獨立于源碼(out-of-source)的編譯功能,即編譯工作可以在另一個指定的目錄中而非源碼目錄中進行,這可以保證源碼目錄不受任何一次編譯的影響,是以在同一個源碼樹上可以進行多次不同的編譯,如針對于不同平台編譯。

跨平台編譯器

[root@localhost src]# tar xf cmake-2.8.8.tar.gz   

[root@localhost src]# cd cmake-2.8.8  

[root@localhost cmake-2.8.8]# ./bootstrap   

[root@localhost cmake-2.8.8]# make && make install  

cmake指定編譯選項的方式不同于make,其實作方式對比如下:

./configure           cmake .

./configure --help    cmake . -LH or ccmake .

指定安裝檔案的安裝路徑時常用的選項:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/data/mysql

-DSYSCONFDIR=/etc

預設編譯的存儲引擎包括:csv、myisam、myisammrg和heap。若要安裝其它存儲引擎,可以使用類似如下編譯選項:

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1

若要明确指定不編譯某存儲引擎,可以使用類似如下的選項:

-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1

比如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1

如若要編譯進其它功能,如SSL等,則可使用類似如下選項來實作編譯時使用某庫或不使用某庫:

-DWITH_READLINE=1

-DWITH_SSL=system

-DWITH_ZLIB=system

-DWITH_LIBWRAP=0

其它常用的選項:

-DMYSQL_TCP_PORT=3306     //監聽的端口号

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock   //Unix通訊方式

-DENABLED_LOCAL_INFILE=1

-DEXTRA_CHARSETS=all

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DWITH_DEBUG=0

-DENABLE_PROFILING=1

如果想清理此前的編譯所生成的檔案,則需要使用如下指令:

make clean

rm CMakeCache.txt

建立一個邏輯卷,這裡假設其邏輯卷的挂載目錄為/mydata,而後需要建立/mydata/data目錄做為mysql資料的存放目錄。

[root@localhost init.d]# fdisk /dev/sda  

//其中過程省略。。  

[root@localhost init.d]# partprobe /dev/sda  

//建立邏輯卷  

[root@localhost init.d]# pvcreate /dev/sda5   

 Writing physical volume data to disk "/dev/sda5"  

 Physical volume "/dev/sda5" successfully created  

[root@localhost init.d]# vgcreate myvg /dev/sda5  

 Volume group "myvg" successfully created  

[root@localhost init.d]# lvcreate -n mydata -L 5G myvg  

 Logical volume "mydata" created  

[root@localhost init.d]# lvs  

 LV     VG     Attr   LSize Origin Snap% Move Log Copy% Convert  

 mydata myvg   -wi-a- 5.00G                                        

 lvtext vgtext -wi-a- 1.00G                                        

 home   vol0   -wi-ao 4.88G                                        

 root   vol0   -wi-ao 29.28G                                        

[root@localhost init.d]# mke2fs -j /dev/myvg/mydata  

//設定開機挂載  

[root@localhost ~]# mkdir /mydata  

[root@localhost ~]# vim /etc/fstab  

//添加如下内容  

/dev/myvg/mydata        /mydata                 ext3    defaults        0 0  

[root@localhost ~]# mount –a //重新挂載  

[root@localhost ~]# mkdir /mydata/data //作為資料的挂載目錄  

//建立使用者  

[root@localhost ~]# groupadd -r mysql  

[root@localhost ~]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql  

[root@localhost ~]# chown -R mysql:mysql /mydata/data  

//開始進行編譯  

[root@localhost src]# tar xf mysql-5.5.25a.tar.gz   

[root@localhost src]# cd mysql-5.5.25a  

[root@localhost src]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 

[root@localhost src]# make && make install  

[root@localhost mysql-5.5.25a]# cd ..  

[root@localhost src]# cd ..  

[root@localhost local]# pwd  

/usr/local  

[root@localhost local]# ln -sv /usr/local/src/mysql-5.5.25a mysql   

[root@localhost local]# cd mysql  

[root@localhost mysql]# chown -R mysql:mysql .  

[root@localhost mysql]#scripts/mysql_install_db --user=mysql --datadir=/mydata/data  

Installing MySQL system tables...  

[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf  

[root@localhost mysql]# vim /etc/my.cnf  

//并修改此檔案中thread_concurrency的值為你的CPU個數乘以2,比如這裡使用如下行:  

thread_concurrency = 2 

//另外還需要添加如下行指定mysql資料檔案的存放位置:  

datadir = /mydata/data   //添加此行指定mysql資料檔案的存放位置  

[root@localhost mysql]# pwd  

/usr/local/mysql  

[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  

[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld  

//添加至服務清單:  

[root@localhost mysql]# chkconfig --add mysqld  

[root@localhost mysql]# chkconfig mysqld on  

為了使用mysql的安裝符合系統使用規範,并将其開發元件導出給系統使用,這裡還需要進行如下步驟:

[root@localhost mysql]# vim /etc/man.config  

#####################mysql#############  

MANPATH /usr/local/mysql/man  

這可以通過簡單的建立連結實作:  

[root@localhost mysql]# ln -sv /usr/local/mysql/include /usr/include/mysql  

create symbolic link `/usr/include/mysql' to `/usr/local/mysql/include'  

[root@localhost ld.so.conf.d]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf  

export PATH=$PATH:/usr/local/mysql/bin  

登入嘗試一下

<a href="http://blog.51cto.com/attachment/201304/224201877.png" target="_blank"></a>

本文轉自 陳延宗 51CTO部落格,原文連結:http://blog.51cto.com/407711169/1186795,如需轉載請自行聯系原作者