lamp架構(一)——簡介與mysql安裝
11.1 LAMP架構介紹
11.2 MySQL、MariaDB介紹
11.3/11.4/11.5 MySQL安裝
LAMP架構介紹
LAMP是指(Linux+Apache(httpd)+MySQL+PHP)一組通常一起使用來執行動態網站或者伺服器的自由軟體,本身都是各自獨立的程式,但是因為常被放在一起使用,擁有了越來越高的相容度,共同組成了一個強大的Web應用程式平臺(簡單說就是建立web伺服器架網站)。
三個角色可以在一臺機器、也可以分開(httpd和PHP要在一起)
MySQL、MariaDB介紹
MySQL是一個關係型資料庫,由mysql ab公司開發,mysql在2008年被sun公司收購(10億刀),2009年sun公司被oracle公司收購(74億刀)。MySQL5.6變化比較大,5.7效能上有很大提升。
Mariadb為MySQL的一個分支。MariaDB主要由SkySQL公司(已更名為MariaDB公司)維護,SkySQL公司由MySQL原作者帶領大部分原班人馬創立。Mariadb5.5版本對應MySQL的5.5,10.0對應MySQL5.6。
MySQL安裝
MySQL安裝方式有二進位制包、原始碼包。我們常用二進位制包,不過有些公司可能想原始碼編譯提高效能。下面是mysql5.6二進位制包安裝方法。
- 下載mysql5.6安裝包
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
- 解壓後移到/usr/local/改名mysql
mkdir -p /data/mysql
useradd -s /sbin/nologin -M mysql
./script/mysql_install_db --user=mysql --datadir=/data/mysql #報錯提示安裝以下依賴:perl-Module-Install libaio-devel
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
#設定mysql配置檔案,詳見下面cp /usr/local/mysql/support-files/mysql.service /etc/init.d/mysqld
service mysqld start
或systemctl start mysqld
#啟動mysql
mysql5.7二進位制包安裝方法和上面類似。安裝時linux可能會缺少依賴包,根據提示搜尋安裝。比如用搜索引擎搜尋關鍵報錯資訊,如果知道依賴包的關鍵字可以嘗試yum list|grep xxx
。我使用miniDVD安裝的centos7,在第五步缺少perl和libaio相關依賴。
mysql配置檔案
my.cnf是mysql配置檔案,預設在linux的/etc/my.cnf。5.7版本之前二進位制包中support-file目錄裡有其模板。將模板複製到/etc/下面後vim /etc/my.cnf
。檔案裡主要配置以下幾行:
innodb_buffer_pool_size = 128M
basedir =/usr/local/mysql
datadir =/usr/local/mysql/data
port = 3306
server_id =128
socket =/tmp/mysql.sock
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
basedir是mysql安裝目錄,datadir是指定mysql資料庫目錄,其他設定保持預設即可。
除了my.cnf,啟動指令碼也很重要。support-file目錄中也有模板(mysql.service)。cp /usr/local/mysql/support-file/mysql.service /etc/init.d/mysqld
把模板拷貝到/etc/init.d/目錄後就可以使用chkconfig配置啟動服務:
chkconfig --add mysqld #新增mysqld
chkconfig mysqld on #設定mysqld開機啟動
然後就可以啟動mysqld服務了。這裡使用service mysqld start
或者systemctl start mysqld
都可以。前一個命令是sysV的啟動方式,後一個是system的啟動方式。除此之外還可以使用/usr/local/mysql/bin/mysql-safe --default-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
來啟動。