溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

1. LAMP架構(gòu)介紹MySQL安裝

發(fā)布時間:2020-07-04 20:05:48 來源:網(wǎng)絡(luò) 閱讀:429 作者:Xavi2017 欄目:MySQL數(shù)據(jù)庫

[toc]

LAMP架構(gòu)介紹MySQL安裝

一、 LAMP架構(gòu)介紹

1.Linux+Apache(httpd)+MySQL+PHP

Appache是最常用的web服務(wù)軟件,而MYSQL是比較小型的數(shù)據(jù)庫軟件,這兩個軟件及PHP都可以安裝到windows機器上
1. LAMP架構(gòu)介紹MySQL安裝

1.1 常用的PHP網(wǎng)站(Google、淘寶、百度、51cto博客、猿課論壇)

擴展:

什么是腳本語言?,為什么php語言是腳本語言
問:1、腳本語言和編程語言和html是不是計算機語言的主要的分類?區(qū)別在什么地方?關(guān)鍵是php是腳本語言這個怎么理解?——因為我才剛開始學(xué)php語言,所以請大俠們說得盡量通俗易懂些。

2、我要做功能比較全的網(wǎng)站,用的是自主建站系統(tǒng),但是是不是最好也學(xué)點php語言?

答1:編程語言一般用來編寫應(yīng)用程序,像C,C++,VB,DEPHI,JAVA等,功能強大,學(xué)習(xí)難度也較大。
腳本語言一般用來編寫一些簡單的應(yīng)用,像JS,VBS,JSP,ASP,PHP等,宏程序也可以算是腳本語言。腳本語言比起編程語言來說最大的缺點是執(zhí)行效率低,但編寫要容易點。

HTML不算是語言,雖然它叫超文本標(biāo)記語言,其實只能算是一些控制標(biāo)記,寫出來的也不稱為程序。
靜態(tài)網(wǎng)頁中也可以有VBS或JS腳本,它們只是前臺的。

ASP中既可以用VBS也可以JS,只不過通常大部分人用VBS罷了,它們是后臺的。
PHP與C語法幾乎相同,其實與JS也幾乎相同,都很接近

你要做網(wǎng)站要學(xué)習(xí)ASP(有點落后了,不過入門較容易)或PHP或JSP或ASP.net(可以學(xué)VB.net也可以學(xué)C#.net)中的至少一樣。
免費的整站系統(tǒng)可以免費使用修改,但大多不允許商業(yè)使用,你可以去相應(yīng)的官方網(wǎng)站查看授權(quán)文件。

答二:c;c++;perl;vb;匯編等等這些屬于編程語言
腳本語言主要是我們常見的asp;php等
asp從屬于vb,是vb的一個子集
php是使用c開發(fā)的
不管是asp還是php都是需要服務(wù)器解析執(zhí)行,但是html和他們是不同的,html不需要服務(wù)器解析執(zhí)行,他只需要直接輸出就行了,所以我們叫html是超文本.

如果你使用的自助建站系統(tǒng)是php開發(fā)的,那么倘若你想開發(fā)復(fù)雜的網(wǎng)站你最好學(xué)一下PHP,這樣你就可以改寫建站系統(tǒng)的核心,但是如果你只用它來做普通的企業(yè)站,php你學(xué)不學(xué)都沒關(guān)系.

1.2 三個角色可以在一臺機器、也可以分開(httpd和PHP要在一起)???Apache和PHP需要安裝到同一臺機器上,因為PHP是作為Apache的一個模塊存在的,兩個必須在一起

2.httpd、PHP、MySQL三者如何工作

1. LAMP架構(gòu)介紹MySQL安裝
MySQL存儲用戶名;密碼和數(shù)據(jù)、圖片之類的放在靜態(tài)文件里

11.2 MySQL_MariaDB介紹

MySQL是一個關(guān)系型數(shù)據(jù)庫,由mysql ab公司開發(fā),mysql在2008年被sun公司收購(10億刀),2009年sun公司被oracle公司收購(74億刀)

MySQL官網(wǎng)https://www.mysql.com 最新版本5.7GA/8.0DMR

MySQL5.6變化比較大,5.7性能上有很大提升

Mariadb為MySQL的一個分支,官網(wǎng)https://mariadb.com/最新版本10.2

MariaDB主要由SkySQL公司(現(xiàn)更名為MariaDB公司)維護(hù),SkySQL公司由MySQL原作者帶領(lǐng)大部分原班人馬創(chuàng)立.

Mariadb5.5版本對應(yīng)MySQL的5.5,10.0對應(yīng)MySQL5.6

Community 社區(qū)版本,Enterprise 企業(yè)版,GA(Generally Available)指通用版本,在生產(chǎn)環(huán)境中用的,DMR(Development Milestone Release)開發(fā)里程碑發(fā)布版,RC(Release Candidate)發(fā)行候選版本,Beta開放測試版本,Alpha內(nèi)部測試版本

11.4 MySQL安裝

1.下載MySQL軟件包

1.1查看系統(tǒng)版本:uname -i
[root@localhost src]# uname -i
x86_64
1.2 下載源碼包前指定一個通用目錄,該目錄保存所有軟件包

什么是源碼包:源碼包都是可以更改的C或者C++語言編寫的源碼文件,而免編譯的二進(jìn)制包就是已經(jīng)編譯過的文件再打包后提供給我們.比如windows上安裝的QQ,360都是這種安裝包.

[root@localhost ~]# cd /usr/local/src
[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

2.初始化

2.1 加壓軟件包
[root@localhost src]#tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
2.2 挪動位置將解壓文件放在/usr/local/mysql/目錄下
[root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
擴展:更新mysql軟件版本的情況
# [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old

類似一條if判斷,意思是如果/usr/local/mysql目錄存在,就改一下名字,以免影響后面的操作,如果不更改原有的路徑名稱,新安裝的mysql步驟會失敗

2.3 檢查/usr/local/mysql/目錄是否正確,有無多余的文件,避免誤操作
[root@localhost src]# cd /usr/local/mysql/
[root@localhost mysql]# ls
bin  COPYING  data  docs  include  lib  man  mysql-test  README  scripts  share  sql-bench  support-files
2.4 創(chuàng)建mysql用戶,因為啟動MySQL需要該用戶
[root@localhost mysql]# useradd mysql

在書中的創(chuàng)建方式為:# useradd -s /sbin/nologin mysql

2.5 創(chuàng)建/data/目錄并更改權(quán)限,用于存放mysql的數(shù)據(jù)文件,為下一步的datadir準(zhǔn)備

[root@localhost mysql]# mkdir /data/
# chown -R mysql:mysql /data/mysql //給/data/mysql這個文件夾服務(wù)mysql用戶的執(zhí)行權(quán)限
2.6 初始化mysql:./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

--user 定義數(shù)據(jù)庫的所屬主, --datadir 定義數(shù)據(jù)庫安裝到哪里,建議放到大空間的分區(qū)上,這個目錄需要自行創(chuàng)建。
初始化的時候,可能回出現(xiàn)如下問題:

[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
2.7如何判斷確實安裝包或模塊:缺少Perl模塊,缺少Dumper的支持
yum list | grep perl | grep -i dumper

那么怎么解決呢?
使用模糊搜索,過濾關(guān)鍵來嘗試解決:

[root@localhost 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     

搜索完成后出現(xiàn)以上四個安裝包,無法確定需要哪個安裝包的時候,可以嘗試每個安裝包都試下。

[root@localhost mysql]# yum install -y perl-Data-Dumper.x86_64
2.8 找到安裝包,重新初始化mysql

執(zhí)行:

[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
第一種,看到兩個OK,確認(rèn)下

1. LAMP架構(gòu)介紹MySQL安裝

第二種,執(zhí)行 echo $?,查看上一條命令是否有問題
[root@localhost mysql]# echo $?
0

3. 配置MySQL

3.1 首先復(fù)制配置文件my-default.cnf
[root@xavi mysql]# ls support-files/my-default.cnf
support-files/my-default.cnf
[root@xavi mysql]# cp support-files/my-default.cnf /etc/my.cnf
編輯配置文件my.cnf,socket定義MySQL服務(wù)監(jiān)聽的套接字地址,在Linux系統(tǒng)下面,很多服務(wù)不僅可以監(jiān)聽一個端口(通過TCP/IP的方式通信),也可以監(jiān)聽socket,兩個進(jìn)程就可以通過這個socket文件通信.
延伸閱讀:socket

絡(luò)上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,這個連接的一端稱為一個socket。
建立網(wǎng)絡(luò)通信連接至少要一對端口號(socket)。socket本質(zhì)是編程接口(API),對TCP/IP的封裝,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是Socket編程接口;HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動機,提供了網(wǎng)絡(luò)通信的能力。
Socket的英文原義是“孔”或“插座”。作為BSD UNIX的進(jìn)程通信機制,取后一種意思。通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄,可以用來實現(xiàn)不同虛擬機或不同計算機之間的通信。在Internet上的主機一般運行了多個服務(wù)軟件,同時提供幾種服務(wù)。每種服務(wù)都打開一個Socket,并綁定到一個端口上,不同的端口對應(yīng)于不同的服務(wù)。Socket正如其英文原義那樣,像一個多孔插座。一臺主機猶如布滿各種插座的房間,每個插座有一個編號,有的插座提供220伏交流電, 有的提供110伏交流電,有的則提供有線電視節(jié)目。 客戶軟件將插頭插到不同編號的插座,就可以得到不同的服務(wù)。

vim編輯my.cnf,修改datadir,socket路徑
# *** upgrade to a newer version of MySQL.

[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
symbolic-links=0
# Remove leading # and set to the amount of RAM for the most important data
rpm -qf查詢某文件來自哪安裝包
[root@xavi mysql]# ls /etc/my.cnf
/etc/my.cnf
[root@xavi mysql]# rpm -qf /etc/my.cnf
mariadb-libs-5.5.52-1.el7.x86_64
3.2 為了在啟動項中完成mysql配置,需要將mysql.server腳本 放到/etc/init.d/mysqld目錄下,并編輯修改
[root@localhost mysql]# ls support-files/
binary-configure  magic  my-default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server

[root@localhost mysql]#  cp support-files/mysql.server /etc/init.d/mysqld
3.3 修改腳本權(quán)限和屬性:chmod 755 /etc/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
[root@localhost mysql]# ls -l /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10594 2月  28 11:41 /etc/init.d/mysqld
3.4 編輯復(fù)制后的腳本文件vim /etc/init.d/mysqld

增加以下兩句:

basedir=/usr/local/mysql//MySQL包所在路徑

datadir=/data/mysql //定義數(shù)據(jù)存放的地方

1. LAMP架構(gòu)介紹MySQL安裝

1. LAMP架構(gòu)介紹MySQL安裝
定義路徑是不要留空格會報錯。

3.4 用chkconfig把mysql添加到開機啟動項中,設(shè)定開機啟動并啟動mysql
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig --list

注意:該輸出結(jié)果只顯示 SysV 服務(wù),并不包含原生 systemd 服務(wù)。SysV 配置數(shù)據(jù)可能被原生 systemd 配置覆蓋。 
      如果您想列出 systemd 服務(wù),請執(zhí)行 'systemctl list-unit-files'。
      欲查看對特定 target 啟用的服務(wù)請執(zhí)行
      'systemctl list-dependencies [target]'。

mysqld          0:關(guān) 1:關(guān) 2:開 3:開 4:開 5:開 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:開 3:關(guān) 4:關(guān) 5:關(guān) 6:關(guān)

[root@localhost mysql]# chkconfig --add mysqld      //把mysqld服務(wù)加入到系統(tǒng)服務(wù)列表中
[root@localhost mysql]# chkconfig mysqld on          //開機啟動mysqld
[root@localhost mysql]# service mysqld start           //啟動mysqld
Starting MySQL.Logging to '/data/mysql/zlinux.err'.
. SUCCESS! 

如果啟動不了,請到 /data/mysql/ 下查看錯誤日志,這個日志通常是主機名.err.。
檢查mysql是否啟動的命令為:

[root@localhost mysql]# ps aux |grep mysql
root       5505  0.0  0.0  11776  1568 pts/0    S    11:46   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql      5612  0.1 24.8 1302876 464396 pts/0  Sl   11:46   0:04 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root       6527  0.0  0.0 112676   976 pts/0    S+   12:47   0:00 grep --color=auto mysql
3.5查看監(jiān)聽端口:netstat -lntp,有沒有3306端口
[root@localhost mysql]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1744/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1069/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1067/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1580/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      5612/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1069/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1067/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1580

4.用命令行的形式啟動mysql,--defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &//指定文件路徑,添加命令,用&轉(zhuǎn)到后臺運行

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &

[root@localhost mysql]# service mysqld stop
Shutting down MySQL.. SUCCESS! 
[root@localhost mysql]# !ps
ps aux |grep mysql
root       6653  0.0  0.0 112676   972 pts/0    S+   12:55   0:00 grep --color=auto mysql
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
[1] 6683
[root@localhost mysql]# 180228 12:58:11 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'.
180228 12:58:11 mysqld_safe Starting mysqld daemon with databases from /data/mysql
^C

ps查看是否啟動

[root@localhost mysql]# !ps
ps aux |grep mysql
root       6683  0.0  0.0 113264  1596 pts/0    S    12:58   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
mysql      6778  1.0 24.4 1302876 455756 pts/0  Sl   12:58   0:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root       6809  0.0  0.0 112676   976 pts/0    S+   12:58   0:00 grep --color=auto mysql

查看端口

[root@localhost mysql]# !net
netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1744/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1069/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1067/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1580/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      6778/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1069/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1067/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1580/master     

4.kill命令

必須以killall命令殺掉進(jìn)程,比較安全。
killall 命令會先把程序執(zhí)行完畢,才殺掉進(jìn)程。
如果killall等了很久都沒有殺死,說明數(shù)據(jù)量很大,需要寫到磁盤中完畢后,慢慢殺死;
如果強制殺死kill+PID,可能導(dǎo)致數(shù)據(jù)丟失或表的損壞。

4.1上述一命令行形式來啟動的mysql,沒法用service mysqld stop來關(guān)閉,只能用killall命令
4.2 這里還是建議開啟和關(guān)閉mysql使用的方法是

service mysqld start
service mysqld stop

[root@localhost mysql]# killall mysqld
[root@localhost mysql]# 180228 13:05:00 mysqld_safe mysqld from pid file /data/mysql/localhost.localdomain.pid ended
^C
[1]+  完成                  /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
[root@localhost mysql]# !ps
ps aux |grep mysql
root       6941  0.0  0.0 112676   976 pts/0    S+   13:06   0:00 grep --color=auto mysql
kill-9 +PID的方法不可取,容易丟數(shù)據(jù)或表格
4.2 mysql的引擎innodb和 myisam 面試前講解??
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI