源代碼編譯安裝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)的編譯功能,即編譯工做能夠在另外一個指定的目錄中而非源碼目錄中進行,這能夠保證源碼目錄不受任何一次編譯的影響,所以在同一個源碼樹上能夠進行屢次不一樣的編譯,如針對於不一樣平臺編譯。

1、安裝cmake

跨平臺編譯器
  
  
  
  
  1. [root@localhost src]# tar xf cmake-2.8.8.tar.gz   mysql

  2. [root@localhost src]# cd cmake-2.8.8  linux

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

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

2、編譯安裝mysql-5.5.25a

一、使用cmake編譯mysql-5.5

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數據的存放目錄。
  
  
  
  
  1. [root@localhost init.d]# fdisk /dev/sda  vim

  2. //其中過程省略。。  安全

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

  4. //建立邏輯卷  spa

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

  6. Writing physical volume data to disk "/dev/sda5"  server

  7. Physical volume "/dev/sda5" successfully created  

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

  9. Volume group "myvg" successfully created  

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

  11. Logical volume "mydata" created  

  12. [root@localhost init.d]# lvs  

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

  14. mydata myvg   -wi-a- 5.00G                                        

  15. lvtext vgtext -wi-a- 1.00G                                        

  16. home   vol0   -wi-ao 4.88G                                        

  17. root   vol0   -wi-ao 29.28G                                        

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

  19. //設置開機掛載  

  20. [root@localhost ~]# mkdir /mydata  

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

  22. //添加以下內容  

  23. /dev/myvg/mydata        /mydata                 ext3    defaults        0 0  

  24. [root@localhost ~]# mount –a //從新掛載  

  25. [root@localhost ~]# mkdir /mydata/data //做爲數據的掛載目錄  

②新建用戶以安全方式運行進程:

  
  
  
  
  1. //建立用戶  

  2. [root@localhost ~]# groupadd -r mysql  

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

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

③安裝並初始化mysql

  
  
  
  
  1. //開始進行編譯  

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

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

  4. [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

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

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

  7. [root@localhost src]# cd ..  

  8. [root@localhost local]# pwd  

  9. /usr/local  

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

  11. [root@localhost local]# cd mysql  

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

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

  14. Installing MySQL system tables...  

④爲mysql提供主配置文件:

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

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

  3. //並修改此文件中thread_concurrency的值爲你的CPU個數乘以2,好比這裏使用以下行:  

  4. thread_concurrency = 2

  5. //另外還須要添加以下行指定mysql數據文件的存放位置:  

  6. datadir = /mydata/data   //添加此行指定mysql數據文件的存放位置  

⑤爲mysql提供sysv服務腳本:

  
  
  
  
  1. [root@localhost mysql]# pwd  

  2. /usr/local/mysql  

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

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

  5. //添加至服務列表:  

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

  7. [root@localhost mysql]# chkconfig mysqld on  

爲了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裏還須要進行以下步驟:

⑥輸出mysql的man手冊至man命令的查找路徑:

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

  2. #####################mysql#############  

  3. MANPATH /usr/local/mysql/man  

⑦輸出mysql的頭文件至系統頭文件路徑/usr/include

  
  
  
  
  1. 這能夠經過簡單的建立連接實現:  

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

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

⑧輸出mysql的庫文件給系統庫查找路徑:

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

⑨修改PATH環境變量,讓系統能夠直接使用mysql的相關命令。

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

登陸嘗試一下

相關文章
相關標籤/搜索