您好,登錄后才能下訂單哦!
11.1 LAMP架構(gòu)介紹
LAMP=Linux+Apache(hettpd)+MySQL+PHP
Linux操作系統(tǒng)
Apache提供web的服務(wù)軟件,真正名字叫httpd
MySQL存儲(chǔ)軟件,數(shù)據(jù)、字符串等等
PHP腳本語(yǔ)言,和shell類似,但比shell復(fù)雜。以做網(wǎng)站為主。
PHP網(wǎng)站(Google、淘寶、百度、51cto博客、猿課論壇)
三個(gè)角色可以在一臺(tái)機(jī)器、也可以分開(kāi)
(httpd和PHP要在一起,MySQL可以單獨(dú)一臺(tái)機(jī)器)
LAMP架構(gòu)介紹
過(guò)程:
PHP與Apache是在一起的,因?yàn)镻HP是以模塊的形式和APACHE結(jié)合在一起的。
但是Apache不能直接與MySQL相互打交道,他只能通過(guò)PHP模塊去MySQL里面拿數(shù)據(jù)。
拿到數(shù)據(jù)后,PHP會(huì)把結(jié)果,反饋給Apache,Apache再把數(shù)據(jù)反饋給用戶。
PHP與MySQL相連取數(shù)據(jù)的行為稱為動(dòng)態(tài)請(qǐng)求。
例如,登錄猿課論壇的操作為例子。
登錄網(wǎng)站(ask.apelearn.com),鍵入賬號(hào)密碼點(diǎn)擊登錄進(jìn)行認(rèn)證,登錄這個(gè)請(qǐng)求已經(jīng)交給Apache,然后Apache去檢查此請(qǐng)求是動(dòng)態(tài)還是靜態(tài)的。因?yàn)榈卿涍@個(gè)行為需要把登錄的信息提交給Apache,Apache拿到賬號(hào)密碼之后會(huì)進(jìn)入數(shù)據(jù)庫(kù)進(jìn)行匹配,看看輸入的對(duì)還是錯(cuò)(此過(guò)程是運(yùn)用了PHP與MySQL打交道的過(guò)程,首先在MySQL查到用戶的賬號(hào)密碼,然后PHP進(jìn)行對(duì)比,如果正確,Apache會(huì)把登錄狀態(tài)反饋給用戶,這就是動(dòng)態(tài)請(qǐng)求)。
靜態(tài)請(qǐng)求
訪問(wèn)網(wǎng)站,網(wǎng)站顯示的logo,這個(gè)logo的顯示也是通過(guò)Apache去請(qǐng)求的,Apache拿到logo圖片發(fā)現(xiàn)該圖片不存在MySQL里面,直接在靜態(tài)文件里面(Linux服務(wù)器上某一個(gè)目錄)拿到了這個(gè)圖片的文件,拿到后直接反饋給用戶,這個(gè)過(guò)程并沒(méi)有與MySQL打交道,這就是靜態(tài)請(qǐng)求。
11.2 MySQL_MariaDB介紹
Oracle
也是同樣做數(shù)據(jù)庫(kù)的,這個(gè)數(shù)據(jù)庫(kù)比較大型,像銀行,金融的一些企業(yè)。
Oracle會(huì)專門(mén)裝在一臺(tái)小型機(jī)上,這臺(tái)小型機(jī)會(huì)安裝Unix。這臺(tái)小型機(jī)是太超級(jí)計(jì)算機(jī)(幾百個(gè)CPU,上T的內(nèi)存等等超級(jí)配置)
MySQL官網(wǎng)https://www.mysql.com 最新版本5.7GA/8.0DMR
MySQL5.6變化比較大,5.7性能上有很大提升
Mariadb為MySQL的一個(gè)分支,官網(wǎng)https://mariadb.com/最新版本10.2
MariaDB主要由SkySQL公司(現(xiàn)更名為MariaDB公司)維護(hù),SkySQL公司由MySQL原作者帶領(lǐng)
部分原班人馬創(chuàng)立.
MySQL原作者帶領(lǐng)大部分原班人馬創(chuàng)立.
Mariadb5.5版本對(duì)應(yīng)MySQL的5.5,10.0對(duì)應(yīng)MySQL5.6
Community 社區(qū)版本,Enterprise 企業(yè)版,
GA(Generally Available)指通用版本,在生產(chǎn)環(huán)境中用的,一般使用此項(xiàng)
DMR(Development Milestone Release)開(kāi)發(fā)里程碑發(fā)布版,
RC(Release Candidate)發(fā)行候選版本,
Beta開(kāi)放測(cè)試版本,
Alpha內(nèi)部測(cè)試版本
11.3-11.5 MySQL安裝
MySQL的幾個(gè)常用安裝包:rpm、源碼、二進(jìn)制免編譯
先進(jìn)入目錄 /usr/local/src(以后把所有軟件包都放在這個(gè)目錄下面)
cd /usr/local/src
下載MySQL 5.6安裝包,一般都下載x64
[root@centos7-01 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
解壓MySQL的安裝包
[root@centos7-01 src]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
把解壓完后的mysql的目錄移動(dòng)并改名 /usr/local/mysql
[root@centos7-01 src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
[root@centos7-01 src]# cd !$
cd /usr/local/mysql
[root@centos7-01 mysql]# ls
bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files
進(jìn)入目錄
[root@centos7-01 mysql]# cd /usr/local/mysql/
建立MySQL用戶,因?yàn)閱?dòng)MySQL需要該用戶。
[root@centos7-01 mysql]# useradd mysql
建立datadir
#mkdir -p /data/mysql
更改權(quán)限
# chown -R mysql:mysql /data/mysql
--user指定用戶,--datedir指定目錄,
[root@centos7-01 mysql]# ./scripts/mysql_install_db --user=mysql --datedir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
-*
如果發(fā)現(xiàn)安裝出錯(cuò),可以先利用grep查找相關(guān)詞的安裝包,如果拿不準(zhǔn)安裝哪個(gè)包的時(shí)候可以全部安裝。大意就是安裝一個(gè)后再測(cè)試,一個(gè)一個(gè)來(lái)。
(其實(shí)第一個(gè)就是我們要安裝的包。)
[root@centos7-01 mysql]# yum list |grep perl |grep -i Dumper
perl-Data-Dumper.x86_64 2.145-3.el7 base
perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel
perl-Data-Dumper-Names.noarch 0.03-17.el7 epel
perl-XML-Dumper.noarch 0.81-17.el7 base
[root@centos7-01 mysql]# yum install -y perl-Data-Dumper
安裝 perl-Data-Dumper完成后,再測(cè)試。
[root@centos7-01 mysql]# ./scripts/mysql_install_db --user=mysql --datedir=/data/mysql
利用echo $?檢查執(zhí)行結(jié)果是否成功 0成功 1以上失敗
[root@centos7-01 mysql]# echo $?
0
至此,初始化完成。
拷貝mysql的配置文件并改名my.cnf(mysql默認(rèn)識(shí)別此命名)
cp support-files/my-default.cnf /etc/my.cnf
系統(tǒng)默認(rèn)已經(jīng)有/etc/my.cnf
[root@Centos7-01 mysql]# ls /etc/my.cnf
/etc/my.cnf
[root@Centos7-01 mysql]# rpm -qf /etc/my.cnf
mariadb-libs-5.5.56-2.el7.x86_64
如果不復(fù)制support-files/my-default.cnf的話,就直接修改my.cnf里面datadir與socket的路徑
datadir=/data/mysql
socket=/tmp/mysql.sock
一定要注釋掉日志報(bào)錯(cuò)與pid報(bào)錯(cuò),因?yàn)樗麄兊哪夸洸淮嬖?,?huì)產(chǎn)生報(bào)錯(cuò)。
復(fù)制腳本文件到指定目錄并改名/etc/init.d/mysqld
#cp support-files/mysql.server /etc/init.d/mysqld
#vi /etc/init.d/mysqld
basedir=/usr/local/mysqlmysql的目錄
datadir=/data/mysqlmysql data的目錄
[root@Centos7-01 mysql]# chmod 755 /etc/init.d/mysqld
把mysqld加入開(kāi)機(jī)服務(wù)列表
[root@Centos7-01 mysql]# chkconfig --add mysqld
[root@Centos7-01 mysql]# chkconfig --list
注:該輸出結(jié)果只顯示 SysV 服務(wù),并不包含
原生 systemd 服務(wù)。SysV 配置數(shù)據(jù)
可能被原生 systemd 配置覆蓋。
要列出 systemd 服務(wù),請(qǐng)執(zhí)行 'systemctl list-unit-files'。
查看在具體 target 啟用的服務(wù)請(qǐng)執(zhí)行
'systemctl list-dependencies [target]'。
mysqld 0:關(guān)1:關(guān)2:開(kāi)3:開(kāi)4:開(kāi)5:開(kāi)6:關(guān)
netconsole 0:關(guān)1:關(guān)2:關(guān)3:關(guān)4:關(guān)5:關(guān)6:關(guān)
network 0:關(guān)1:關(guān)2:開(kāi)3:開(kāi)4:開(kāi)5:開(kāi)6:關(guān)
/etc/init.d/mysqld start啟動(dòng)服務(wù),同樣下面方法也是一樣
[root@Centos7-01 mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/Centos7-01.err'.
SUCCESS!
再檢查進(jìn)程與監(jiān)聽(tīng)端口。
#ps aux |grep myslqd
#netstat -lntp
另一種方法啟動(dòng)服務(wù),指定目標(biāo),更詳細(xì)。
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --data/mysql &
停止服務(wù)利用killall mysqld (這種比較安全)
如果發(fā)現(xiàn)服務(wù)等了好久也停不了 不要用kill -9去殺 否則會(huì)導(dǎo)致數(shù)據(jù)丟失或損壞 這時(shí)候唯有等到結(jié)束為止。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。