11.1 LAMP架構介紹
創(chuàng)新互聯(lián)專注于尖草坪企業(yè)網站建設,自適應網站建設,商城網站定制開發(fā)。尖草坪網站建設公司,為尖草坪等地區(qū)提供建站服務。全流程按需搭建網站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
LAMP=Linux+Apache(hettpd)+MySQL+PHP
Linux操作系統(tǒng)
Apache提供web的服務軟件,真正名字叫httpd
MySQL存儲軟件,數(shù)據(jù)、字符串等等
PHP腳本語言,和shell類似,但比shell復雜。以做網站為主。
PHP網站(Google、淘寶、百度、51cto博客、猿課論壇)
三個角色可以在一臺機器、也可以分開
(httpd和PHP要在一起,MySQL可以單獨一臺機器)
LAMP架構介紹
過程:
PHP與Apache是在一起的,因為PHP是以模塊的形式和APACHE結合在一起的。
但是Apache不能直接與MySQL相互打交道,他只能通過PHP模塊去MySQL里面拿數(shù)據(jù)。
拿到數(shù)據(jù)后,PHP會把結果,反饋給Apache,Apache再把數(shù)據(jù)反饋給用戶。
PHP與MySQL相連取數(shù)據(jù)的行為稱為動態(tài)請求。
例如,登錄猿課論壇的操作為例子。
登錄網站(ask.apelearn.com),鍵入賬號密碼點擊登錄進行認證,登錄這個請求已經交給Apache,然后Apache去檢查此請求是動態(tài)還是靜態(tài)的。因為登錄這個行為需要把登錄的信息提交給Apache,Apache拿到賬號密碼之后會進入數(shù)據(jù)庫進行匹配,看看輸入的對還是錯(此過程是運用了PHP與MySQL打交道的過程,首先在MySQL查到用戶的賬號密碼,然后PHP進行對比,如果正確,Apache會把登錄狀態(tài)反饋給用戶,這就是動態(tài)請求)。
靜態(tài)請求
訪問網站,網站顯示的logo,這個logo的顯示也是通過Apache去請求的,Apache拿到logo圖片發(fā)現(xiàn)該圖片不存在MySQL里面,直接在靜態(tài)文件里面(Linux服務器上某一個目錄)拿到了這個圖片的文件,拿到后直接反饋給用戶,這個過程并沒有與MySQL打交道,這就是靜態(tài)請求。
11.2 MySQL_MariaDB介紹
Oracle
也是同樣做數(shù)據(jù)庫的,這個數(shù)據(jù)庫比較大型,像銀行,金融的一些企業(yè)。
Oracle會專門裝在一臺小型機上,這臺小型機會安裝Unix。這臺小型機是太超級計算機(幾百個CPU,上T的內存等等超級配置)
MySQL官網https://www.mysql.com 最新版本5.7GA/8.0DMR
MySQL5.6變化比較大,5.7性能上有很大提升
Mariadb為MySQL的一個分支,官網https://mariadb.com/最新版本10.2
MariaDB主要由SkySQL公司(現(xiàn)更名為MariaDB公司)維護,SkySQL公司由MySQL原作者帶領
部分原班人馬創(chuàng)立.
MySQL原作者帶領大部分原班人馬創(chuàng)立.
Mariadb5.5版本對應MySQL的5.5,10.0對應MySQL5.6
Community 社區(qū)版本,Enterprise 企業(yè)版,
GA(Generally Available)指通用版本,在生產環(huán)境中用的,一般使用此項
DMR(Development Milestone Release)開發(fā)里程碑發(fā)布版,
RC(Release Candidate)發(fā)行候選版本,
Beta開放測試版本,
Alpha內部測試版本
11.3-11.5 MySQL安裝
MySQL的幾個常用安裝包:rpm、源碼、二進制免編譯
先進入目錄 /usr/local/src(以后把所有軟件包都放在這個目錄下面)
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的目錄移動并改名 /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
進入目錄
[root@centos7-01 mysql]# cd /usr/local/mysql/
建立MySQL用戶,因為啟動MySQL需要該用戶。
[root@centos7-01 mysql]# useradd mysql
建立datadir
#mkdir -p /data/mysql
更改權限
# 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)安裝出錯,可以先利用grep查找相關詞的安裝包,如果拿不準安裝哪個包的時候可以全部安裝。大意就是安裝一個后再測試,一個一個來。
(其實第一個就是我們要安裝的包。)
[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完成后,再測試。
[root@centos7-01 mysql]# ./scripts/mysql_install_db --user=mysql --datedir=/data/mysql
利用echo $?檢查執(zhí)行結果是否成功 0成功 1以上失敗
[root@centos7-01 mysql]# echo $?
0
至此,初始化完成。
拷貝mysql的配置文件并改名my.cnf(mysql默認識別此命名)
cp support-files/my-default.cnf /etc/my.cnf
系統(tǒ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
如果不復制support-files/my-default.cnf的話,就直接修改my.cnf里面datadir與socket的路徑
datadir=/data/mysql
socket=/tmp/mysql.sock
一定要注釋掉日志報錯與pid報錯,因為他們的目錄不存在,會產生報錯。
復制腳本文件到指定目錄并改名/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加入開機服務列表
[root@Centos7-01 mysql]# chkconfig --add mysqld
[root@Centos7-01 mysql]# chkconfig --list
注:該輸出結果只顯示 SysV 服務,并不包含
原生 systemd 服務。SysV 配置數(shù)據(jù)
可能被原生 systemd 配置覆蓋。
要列出 systemd 服務,請執(zhí)行 'systemctl list-unit-files'。
查看在具體 target 啟用的服務請執(zhí)行
'systemctl list-dependencies [target]'。
mysqld 0:關1:關2:開3:開4:開5:開6:關
netconsole 0:關1:關2:關3:關4:關5:關6:關
network 0:關1:關2:開3:開4:開5:開6:關
/etc/init.d/mysqld start啟動服務,同樣下面方法也是一樣
[root@Centos7-01 mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/Centos7-01.err'.
SUCCESS!
再檢查進程與監(jiān)聽端口。
#ps aux |grep myslqd
#netstat -lntp
另一種方法啟動服務,指定目標,更詳細。
#/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --data/mysql &
停止服務利用killall mysqld (這種比較安全)
如果發(fā)現(xiàn)服務等了好久也停不了 不要用kill -9去殺 否則會導致數(shù)據(jù)丟失或損壞 這時候唯有等到結束為止。