需要事先準備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,如需轉載請自行聯系原作者