一、LAMP:顧名思義,包括linux(操做系統)+Apache(httpd)+mysql(數據庫軟件)+php(軟件代碼)的縮寫,php
用來創建Web服務器,三個角色能夠能夠再同一臺服務器,也能夠分開來:以下兩種方式:css
(1):php能夠做爲httpd的一個模塊(php module)的存在,二者必須在同一臺機器上,纔能有效果:mysql
(2):php單獨做爲fastcgi的形式,單獨部署在一臺服務器上,httpd須要時則調用便可:linux
二、LAMP的工做原理:用戶訪問數據,httpd分別處理兩種請求,動態請求和靜態請求:sql
動態請求:動態的數據,httpd經過php module和mysql數據庫打交道,好比當用戶須要登陸一個網頁時,會先發送登陸請求到httpd服務器,再由php module去mysql處取登陸相關信息,用於和用戶提交數據作對比,成功後則返回給用戶一個信息:數據庫
靜態請求:靜態的數據,好比圖片、logo圖片、文字、js css等,不須要和mysql打交道:httpd直接去服務器的某個目錄去取數據:vim
三、mysql介紹:mysql是一種關係型數據庫(將數據保存在不一樣的表中,這樣提升了速度和靈活性),mysql由mysql ab公司開發,後通過sun並於2009年被oracle收購:安全
mariaDB是mysql的一個分支,由mysql原做者及其餘成員開發,現由maraDB公司維護,mariaDB5.5對應mysql5.5,均按照mysql的版本,而從2012.11.12開始則發佈10.0.0版本,以mysql爲基礎,自行開發新功能:bash
四、mysql的版本:共有七個版本:服務器
community 社區版:
enterprise 企業版:
GA(generally available) 通用版,在生產環境中使用:
DMR(development milestone release) 開發里程碑版本:
RC(release candidate) 發行候選版本:
Beta 開放測試版本;Alpha 內部測試版本
五、mysql的安裝:
(1):下載mysql 5.6版本:
[root@localhost_002 src]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
(2):解壓mysql:
[root@localhost_002 src]# tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
(3):修更名稱並挪到/usr/local/mysql下:
[root@localhost_002 src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
(4):建立mysql用戶及數據庫目錄:
[root@localhost_002 src]# cd /usr/local/mysql/
[root@localhost_002 mysql]# useradd mysql #建立mysql用戶:
[root@localhost_002 mysql]# mkdir /data/ #建立mysql數據庫目錄:
(5):初始化mysql:指定mysql用戶和指定mysql的數據庫路徑: --user=mysql --datadir=/data/mysql/
[root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
報錯信息1:
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
須要安裝:yum install perl-Data-Dumper
報錯信息2:
[root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
須要安裝相關的庫文件: yum -y install libaio* libaio-dev*
[root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@localhost_002 mysql]# echo $?
0
(6)、拷貝默認配置文件到/etc/my.cnf下:
[root@localhost_002 mysql]# cp support-files/my-default.cnf /etc/my.cnf
(7)、拷貝啓動腳本到/etc/init.d/mysqld:
[root@localhost_002 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
(8)、修改配置文件內容:/etc/my.cnf
[root@adai003 mysql]# vim /etc/my.cnf [mysqld] datadir=/data/mysql #修改mysql的配置目錄: socket=/tmp/mysql.sock #修改socket: # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] #log-error=/var/log/mariadb/mariadb.log #pid-file=/var/run/mariadb/mariadb.pid # include all files from the config directory #!includedir /etc/my.cnf.d
(9)、修改啓動腳本:/etc/init.d/mysqld:
[root@localhost_002 mysql]# cat /etc/init.d/mysqld |grep -v ^#|grep -v ^$|head -15 basedir=/usr/local/mysql #設置mysql的程序目錄: datadir=/data/mysql #設置數據庫的目錄: service_startup_timeout=900 lockdir='/var/lock/subsys' lock_file_path="$lockdir/mysql" mysqld_pid_file_path= if test -z "$basedir" then basedir=/usr/local/mysql bindir=/usr/local/mysql/bin if test -z "$datadir" then datadir=/usr/local/mysql/data fi
(10)、添加開機自啓動: chkonfig:
[root@localhost_002 mysql]# chkconfig --add mysqld [root@localhost_002 mysql]# chkconfig --list mysqld mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
(11)、啓動mysql:service mysqld restart
[root@localhost_002 mysql]# service mysqld restart Starting MySQL.Logging to '/data/mysql/localhost_002.err'. . SUCCESS!
詳細安裝命令以下:
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz 100%[===========================================================================================>] 328,882,304 1.76MB/s 用時 3m 13s 2018-08-21 20:53:43 (1.63 MB/s) - 已保存 「mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz」 [328882304/328882304]) [root@localhost_002 src]# tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz #解壓 [root@localhost_002 src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql #改變目錄名稱 [root@localhost_002 src]# cd /usr/local/mysql/ [root@localhost_002 mysql]# useradd mysql #建立mysql用戶: [root@localhost_002 mysql]# mkdir /data/ #建立mysql數據庫目錄: [root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql #初始化mysql:報錯信息以下: FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper #可知是缺乏這個包:搜索並安裝這個包: [root@localhost_002 mysql]# yum list |grep rerl |grep -i dumper perl-Data-Dumper.x86_64 2.145-3.el7 base perl-XML-Dumper.noarch 0.81-17.el7 base [root@localhost_002 mysql]# yum install -y perl-Data-Dumper.x86_64 [root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory #安裝相關的庫文件: [root@localhost_002 mysql]# yum -y install libaio* libaio-dev* #安裝庫文件: [root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql [root@localhost_002 mysql]# echo $? 0 #檢查mysql安裝是否有錯誤: 0則是沒有錯誤: 或者看看是否有兩個?號: [root@localhost_002 mysql]# cp support-files/my-default.cnf /etc/my.cnf #拷貝默認配置文件/etc/my.cnf: [root@localhost_002 mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷貝默認啓動腳本到/etc/init.d/mysqld: 修改配置文件內容/etc/my.cnf [root@adai003 mysql]# vim /etc/my.cnf [mysqld] datadir=/data/mysql #修改mysql的配置目錄: socket=/tmp/mysql.sock #修改socket: 修改啓動腳本內容/etc/init.d/mysqld: [root@localhost_002 mysql]# cat /etc/init.d/mysqld |grep -v ^#|grep -v ^$|head -15 basedir=/usr/local/mysql #設置mysql的程序目錄: datadir=/data/mysql #設置數據庫的目錄: [root@localhost_002 mysql]# chkconfig --add mysqld #設置開機自啓動: [root@localhost_002 mysql]# chkconfig --list mysqld mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關 [root@localhost_002 mysql]# service mysqld restart #啓動mysql服務:
六、有時候咱們沒有寫入到啓動腳本下,也沒有模板能夠拷貝,還能夠經過如下命令來啓動mysql服務:
[root@localhost_002 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & #在後臺執行該命令: [root@localhost_002 mysql]# 180821 22:07:27 mysqld_safe Logging to '/data/mysql/localhost_002.err'. 180821 22:07:27 mysqld_safe A mysqld process already exists [root@localhost_002 mysql]# !ps root 1616 0.0 0.1 11772 1588 pts/0 S 22:06 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost_002.pid #mysql服務已經啓動: 那麼如何關閉呢: killall [root@localhost_002 mysql]# killall5 mysqld
擴展:kill命令與killall的區別:
安裝killall命令:[root@localhost_002 mysql]# yum install -y psmisc
kill命令和killall命令都是用來殺死系統中的進程,區別是:
kill用來殺死單個進程,killall用來殺死進程樹
使用kill命令會馬上結束正在運行中的進程,若是該進程正在進行磁盤的讀寫,或者數據正在內存還未保存到磁盤裏,那麼數據會由於進程的結束而丟失,而killall命令會等待該數據讀寫完畢後再將相關進程結束,相對來講使用起來更加安全:
全部若是之後有mysqld的進程,一直殺不死,說明數據量很大,正在慢慢的寫入到磁盤裏去,不要用kill -9 去殺,會丟數據和損失表,建議使用killall 服務,而後慢慢等待:
關於mysqld有兩個引擎:
myisam:比較小,存儲空間比較下:
innodb:存儲空間比較大:
uname:查看系統相關信息(內核版本、硬件架構、主機名稱、操做系統類型):
-a:all,顯示所有信息:
-m:machine,顯示電腦類型:
-n:顯示在網絡上的主機名:
-r:release,顯示操做系統發現版本號:
-s:顯示系統名稱:
-v:version:顯示操做系統版本:
-p:顯示處理類型或者unknown:
-i:輸出硬件平臺:
-o:輸出操做系統名稱:
通常軟件包的安裝方式有以下三種:
rpm包:不能手動指定安裝的目錄:
源碼包:須要手動編譯安裝,比較繁瑣:
二進制免編譯包:方便快捷,把編譯好的文件作成二進制文件,放在一個目錄下打包壓縮: