lamp安裝教程之編譯、安裝Mysql
lamp安裝教程:可以根據以下三個步驟來安裝編譯lamp
三、編譯、安裝PHP
首先,我們要獲得Apache、Mysql和PHP的源碼包,軟件的官方網站去下載,在網上很容易查到的。
下載獲得的源碼軟件包分別為:
httpd-2.2.9.tar.gz
mysql-5.0.67.tar.gz
php-5.2.6.tar.gz
各源碼包解壓后,將會生成一個與其主文件名同名的目錄(使用tar指令解壓,使用參數zxvf,即“tar zxvf 壓縮包名”),由于在編譯、安裝PHP時需要對Apache和Mysql的支持情況進行配置,所以,PHP只能最后安裝,而Apache和MySQL的安 裝順序則相對隨意些,本文將首先安裝MySQL(本文建議創建單獨的目錄用于軟件的編譯、安裝,避免與 源碼包中的數據混淆,也方便對軟件的重新編譯)。
編譯、安裝Mysql
在與mysql-5.0.67目錄同級的目錄下,創建一個“makemysql”目錄,在此目錄下對MySQL進行配置,操作如下:
- mkdir makemysql
- cd makemysql
- sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
(這里--prefix選項指定了軟件的安裝目錄;--localstatedir選項指定了數據庫文件的所在目錄,這里的user表示當前的用戶名 稱;--with-extra-charsets選項則是指定了MySQL可以支持的語言編碼,這里設置為全部支持,具體使用哪種編碼,可以在程序中指 定。
而命令前面的“sudo”,可以說是Ubuntu系統的一個特色,表明了要在具有管理員權限的模式下進行操作,對于其他的Linux發行版本而言,或許并不需要使用該指令。關于Ubuntu的權限問題,這里就不贅述了,有興趣的朋友可以參考一下Ubunt u的有關資料)
回車確認后,第一個問題出現了,將會看到如下的報錯信息:
- configure: error: no acceptable C compiler found in $PATH
- See `config.log' for more details.
上述信息表明,當前系統中沒有安裝C++編譯器,系統無法對源碼包進行編譯,知道了問題所在,我們就可以有的放矢的開始解決問題了。
Ubuntu系統自帶了很多編譯、開發所必須的軟件包,只是我們安裝的是Ubuntu-Server系統,默認的狀態下,除了系統自身外,不會安裝任何其他軟件。上述的這個問題只要安裝Ubuntu系統自帶的“build-essential”軟件包就可以,操作如下:
- sudo apt-get install build-essential
由于該軟件包屬于Ubuntu-Server系統自帶的,系統會提示要求使用Ubuntu-Server的光盤進行安裝,只有當Ubuntu-Server的光盤中沒有需要安裝的軟件包時,才會通過前面手動添加的Ubuntu-DVD的光盤源進行安裝)
安裝好了所需的編譯器之后,需要重新配置MySQL,操作如下:
- cd /home/user/makemysql (這里假定前面獲取的源碼包和前面創建的專門用于編譯的目錄是位于/home/user下的,根據自己的實際情況輸入即可)
- sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
經過了一連串兒的編譯過程后,第二個問題又出現了,在編譯過程的最后,將會看到如下的錯誤信息:
- checking for termcap functions library... configure: error: No curses/termcap library found
從提示的錯誤信息中可以看出,這是由于系統中缺少了MySQL所需的庫文件所導致的,apt-get再次派上了用場,操作如下:
- sudo apt-get install libcurses (這里不按回車,而是按Tab鍵)
這里將會看到軟件源中包括的所有文件名以libcurses開頭的軟件包列表,如下:
- libncurses5 libncurses5-dev libncurses-dev libncursesw5
這里我們需要安裝的是libncurses5-dev軟件包(安裝了build-essential軟件包后,一些基本的庫文件都會隨之安裝的,如果再遇 到缺少庫文件的提示,大部分是因為沒有安裝對應的dev庫,也就是對應的“開發包”所導致的,應根據具體情況進行判斷。)
找到了所需的軟件包,安裝之,操作如下:
- sudo apt-get install libncurses5-dev
(這里將會提示插入Ubuntu-DVD光盤,因為Ubuntu-Server光盤中并沒有這個軟件包,插入Ubuntu-DVD光盤后確認。如果沒有在 前面添加Ubuntu-DVD的光盤源,使用這種方法將無法查找到這個軟件包,只能先查找資料,確定所需的軟件包名稱,再使用互聯網軟件源安裝,或者將軟 件包下載到本地進行安裝。)
安裝好庫文件后,再次重新配置MySQL,操作如下:
- cd /home/user/makemysql
- sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
長長的編譯過程結束后,將會看到“Thank you for choosing MySQL!”的字樣,編譯成功!
配置完成后,開始編譯、安裝MySQL,操作如下:
- sudo make
- sudo make install
安裝結束后,MySQL服務并不會自動啟動,還需要先初始化MySQL數據庫,操作如下:
- cd /opt/mysql/bin
- sudo ./mysql_install_db
MySQL數據庫初始化完成后,MySQL服務會隨之啟動,可以使用“netstat -lt”查看MySQL服務是否已經正常啟動。
這里要說明的是,由于在編譯MySQL的時候,為數據庫指定了存放路徑,即/home/user/mysql_data,對當前用戶user而言,擁有該 目錄的全部權限,所以,這里直接在當前用戶下執行mysql_install_db指令,可以成功初始化數據庫,如果用戶在安裝時沒有指定數據庫的路徑, 或者指定到了一個當前用戶沒有權限的路徑,直接 執行mysql_install_db指令時將會報錯,需要首先設置相應的權限,或者指定MySQL的啟動用戶。關于這個問題,這里就不具體說明了,感興 趣的朋友可以查閱相關資料。
MySQL服務成功啟動后,為了能夠正常使用MySQL,首先需要設置root用戶的密碼(注:這里的root用戶與Linux系統的root用戶不同),操作如下:
- cd /opt/mysql/bin
- ./mysqladmin -u root password 123456
這里將MySQL的root用戶密碼設置為123456,設置好后,可以先測試一下是否能夠正常連接,操作如下:
- ./mysql -uroot -p123456
如果一切正常,將會看到“mysql>”的提示符,表明已經使用root用戶與本機的mysql服務成功建立了連接。至此,MySQL的編譯、安裝成功完成。
還有一點需要說明,MySQL服務默認只允許從服務器本機連接,如果需要從遠程連接,還需要在MySQL中設置相應的權限,并更新權限表,具體操作如下:
- mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
- mysql> flush privileges;
(注意前面的“mysql>”,這個操作是連接到MySQL服務后,在MySQL中進行的,而不是在操作系統中進行的)
(注:上面這個更改權限的例子,是使得可以從任意一臺遠程終端使用root用戶連接MySQL服務器,用戶應根據自己的實際需要進行設置)