1. 程式人生 > >LAMP架構介紹及mysql安裝

LAMP架構介紹及mysql安裝

Linux mysql 安裝

LAMP架構介紹

LAMP是Linux+Apache(httpd)+MySQL+PHP的簡寫,即把Apache、MySQL以及PHP安裝在linux系統上,組成一個運行環境來運行PHP腳本語言,通常是網站。比如Google、淘寶、百度、51cto博客、猿課論壇等就是用PHP語言寫出來的。


httpd、PHP、MySQL三個角色可以在一臺機器、也可以分開,但httpd和PHP要安裝在一臺機器上,這也是PHP作為Apache的一個模塊存在的,它們兩必須在一起。


httpd、PHP、MySQL三者如何工作:

PHP是以模塊的形式和Apache結合在一起的。

Apache不能直接跟Mysql打交道,只能通過PHP模塊去Mysql拿數據,再交給Apache再交給用戶。PHP與Mysql之間是動態請求。

技術分享圖片




MySQL安裝

MySQL的幾個常用安裝包:rpm包、源碼包、二進制免編譯包


1.查看linux系統是多少位

# uname -a 查看linux系統是多少位

Linux gary 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux


2.下載mysql源碼包,把安裝包放到指定目錄下:

# cd /usr/local/src

# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

--2018-02-26 19:17:14-- http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

正在解析主機 mirrors.sohu.com (mirrors.sohu.com)... 221.236.12.140

正在連接 mirrors.sohu.com (mirrors.sohu.com)|221.236.12.140|:80... 已連接。

已發出 HTTP 請求,正在等待回應... 200 OK

長度:314581668 (300M) [application/octet-stream]

正在保存至: “mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz”


100%[===============================================================================>] 314,581,668 1.40MB/s 用時 3m 34s

2018-02-26 19:20:49 (1.40 MB/s) - 已保存 “mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz” [314581668/314581668])


3.將壓縮包解壓:

# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz


4.把目錄移動到/usr/local/下並改名為mysql:

# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql


5.進入目錄查看:

# cd /usr/local/mysql

# ls

bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files


6.創建mysql用戶,創建目錄/data/,用來存放mysql數據:

# useradd mysql

# mkdir /data/


7.初始化指定用戶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

# yum list |grep perl |grep -i dumper

perl-Data-Dumper.x86_64 2.145-3.el7 base

perl-XML-Dumper.noarch 0.81-17.el7 base


# yum install -y perl-Data-Dumper

# echo $? 檢驗上一次命令是否成功,需要馬上測驗

0

# ./scripts/mysql_install_db –user=mysql –datadir=/data/mysql //報錯解決後再執行


解決辦法:

(執行後可能會出現這種情況,是因為缺少了一個模塊,需要我們安裝:yum install -y perl-Data-Dumper)

執行完命令後可馬上執行命令echo $?查看是否為0,為0說明執行成功。


可能缺少的包:

yum install -y libaio

yum install -y numactl

yum -y install libaio-devel

yum -y install openssl-devel

yum -y install perl perl-devel



8.拷貝配置文件,有兩種方法:
方法一:
拷貝配置文件到etc目錄下 cp support-files/my-default.cnf /etc/my.cnf
方法二:
更改自帶的vim /etc/my.cnf文件,更改成如下配置:
技術分享圖片


技術分享圖片9.復制啟動腳本到/etc/init.d目錄下並改名mysqld:

# cp support-files/mysql.server /etc/init.d/mysqld


10.編輯啟動腳本:

# vi /etc/init.d/mysqld定義basedir和datadir
basedir=/usr/local/mysql
datadir=/data/mysql
技術分享圖片

技術分享圖片


11.啟動mysql:

看下默認權限是不是755,把服務加入開機啟動。
# ls -l /etc/init.d/mysqld 默認權限

-rwxr-xr-x1root root1090212月1420:57/etc/init.d/mysqld

# chkconfig --add mysqld 添加開機啟動

# chkconfig --list 查看已添加開機


註意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。

如果您想列出 systemd 服務,請執行'systemctl list-unit-files'。

欲查看對特定 target 啟用的服務請執行'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:關


手動啟動mysql服務命令

# /etc/init.d/mysqld start 或者 service mysqld start

# service mysqld start 服務啟動成功

Starting MySQL.Logging to '/data/mysql/gary.err'.

..... SUCCESS!


# ps aux |grep mysql 查看進程

root 8081 0.0 0.1 11760 1588 pts/0 S 21:23 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/gary.pid

mysql 8216 0.9 44.9 973048 449520 pts/0 Sl 21:23 0:05 /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/gary.err --pid-file=/data/mysql/gary.pid --socket=/tmpmysql.sock

root 8258 0.0 0.0 112664 972 pts/0 S+ 21:32 0:00 grep --color=auto mysql


# netstat -lntp 查看監聽端口3306

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:22 0.0.0.0:* LISTEN 827/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1102/master

tcp6 0 0 :::3306 :::* LISTEN 8216/mysqld

tcp6 0 0 :::22 :::* LISTEN 827/sshd

tcp6 0 0 ::1:25 :::* LISTEN 1102/master



假設:

如果沒有啟動腳本可以放在/etc/init.d下,那麽可以用命令的方式來打開mysql(PS:命令模式打開的mysql要關閉需要用kill命令:killall mysqld,也可以用 kill PID號,但是建議用killall,就如mysql如果用killall,它會先停止當前的讀寫操作,再把沒有完成寫入磁盤的數據慢慢寫進去,直到寫完之後才會把進程殺死。如果遇到mysqld進程殺不死,等了一分鐘還殺不死,說明數據量很大,慢慢等,不要強制使用kill -9 。)

命令:

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

–defaults-file:指定配置文件所在的路徑。

示例如下:

# service mysqld stop 停止mysql服務

Shutting down MySQL.. SUCCESS!

# ps aux |grep mysql 查看進程停止

root 8290 0.0 0.0 112664 968 pts/0 S+ 21:38 0:00 grep --color=auto mysql

# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & 執行命令啟動服務,這裏按ctrl+z把命令放到後臺執行

[1] 8472

# 171214 21:42:10 mysqld_safe Logging to '/data/mysql/gary.err'.

171214 21:42:10 mysqld_safe Starting mysqld daemon with databases from /data/mysql


# ps aux |grep mysql 進程啟動

root 8472 0.0 0.1 113256 1584 pts/0 S 21:42 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql

mysql 8595 0.3 45.6 973048 456372 pts/0 Sl 21:42 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/gary.err --pid-file=/data/mysql/gary.pid --socket=/tmp/mysql.sock

root 8620 0.0 0.0 112664 968 pts/0 S+ 21:46 0:00 grep --color=auto mysql

# yum install psmisc 安裝killall命令

# killall mysqld 終止以命令方式啟動的mysql服務

# ps aux |grep mysql 查看進程已結束

root 8642 0.0 0.0 112664 972 pts/0 R+ 21:54 0:00 grep --color=auto mysql


LAMP架構介紹及mysql安裝