lamp 是linux apache mysql php 的縮寫,就是整個一套服務端環(huán)境,對于php開發(fā)的網(wǎng)站,我們訪問到的頁面或者數(shù)據(jù)很可能就是這套環(huán)境提供的。對于普通網(wǎng)民來說,我們沒有注意我們訪問到的網(wǎng)站內(nèi)容,其實是分兩大類的,一類是圖片為代表的靜態(tài)數(shù)據(jù),一類是存儲在數(shù)據(jù)庫中的動態(tài)數(shù)據(jù),比如我們登陸博客的用戶名密碼等。我們根據(jù)下圖分解下各部分原理,linux當然是指我們的linux操作系統(tǒng)centos,ubuntu等。apache我們都知道他是一個基金會的名字,其實質(zhì)是一個叫httpd的web server。mysql是數(shù)據(jù)庫,用來存儲動態(tài)數(shù)據(jù),真正和他打交道的是一個叫php的應用。在lamp架構中,他作為httpd的一個模塊存在。用戶請求的靜態(tài)文件直接存儲在服務器上,動態(tài)數(shù)據(jù)存儲在數(shù)據(jù)庫中,通過php調(diào)用后傳遞給web,數(shù)據(jù)庫可以單獨裝在其他服務器上,通過網(wǎng)絡連接。
下面我們具體看下mysql的安裝。
MySQL的幾個常用安裝包:rpm、源碼、二進制免編譯包安裝
這里我們采用二進制免編譯包安裝,他相對于源碼包來說不用去解決編譯缺少庫的錯誤,安裝更簡
單,因為他是在linux系統(tǒng)中編譯好的, 相對與rpm來說他可以指定目錄,方便包的管理。cd /usr/local/src
到該目錄下,以后統(tǒng)一將下載的應用包放在這里
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
下載一個mysql包,如果鏈接失效,可以再找其他鏡像源tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
1 數(shù)據(jù)包重命名mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local/mysql
2 創(chuàng)建用戶及數(shù)據(jù)存放目錄
useradd mysql
mkdir /data/
3初始化./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
我們發(fā)現(xiàn)缺少perl 模塊下的 Dumper包,我們嘗試著找下yum list |grep perl |grep -i dumper
// -i 忽略大小寫
我們可以嘗試安裝這兩個包,看是否可以解決上面問題,也可以兩個都裝上,再初始化。
我們yum安裝了上面第一個包后,再次初始化,發(fā)現(xiàn)又有一個問題,真是出師不利,不過不用怕,上網(wǎng)查了下解決辦法:缺少libaio庫文件,直接放了個大招,yum install -y libaio*
后來我發(fā)現(xiàn)可以直接yum povides libaio.so.1
找這個庫文件,畢竟這個模糊匹配安裝讓人不踏實。
安裝完后,echo $? 結(jié)果為0 ,這下好了
cp support-files/my-default.cnf /etc/my.cnf
拷貝配置文件模板并編輯,我們發(fā)現(xiàn)/etc/下已經(jīng)有一個my.cnf 那么就可以不用上面那個my-default.cnf文件了,直接編輯該文件即可
4 編輯配置文件vim /etc/my.cnf
我們定義datadir 和 socket 然后注釋掉其他內(nèi)容
5 定義啟動腳本cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
拷貝啟動文件,并編輯
定義basedir和datadir/etc/init.d/mysqld start
出現(xiàn)sucess 后表示啟動成功, 可以ps aux |grep mysqld
查看下進程。
6 要實現(xiàn)開機啟動,可以
chkconfig --add mysqld //加入系統(tǒng)服務列表
chkconfig mysqld on
備注:
一直以為mysql 優(yōu)先加載/etc/my.cnf 該配置文件,后面發(fā)現(xiàn)原來不是這樣的,按照我目前的理解,/etc 下面的配置文件應該屬于yum 直接安裝的應用。然而我們采用的是二進制免編譯包的安裝辦法。那么為啥我們上面的配置沒有問題呢,因為這個加載都定義在啟動腳本中,在support-files/mysql.server文件中,定義了優(yōu)先加載$basedir 下面的my.cnf配置文件。如果沒有定義,才去找/etc/my.cnf,我們剛配置的/etc/my.cnf之所以可以生效,是因為$basedir /my.cnf沒有去定義,都處在注釋狀態(tài)。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。