9月8號上課筆記
LAMP架構介紹
LAMP是 linux Apache MySQL PHP的簡寫,即把Apache MySQL PHP 安裝在linux系統上,組成一個環境來執行PHP網站。這裡的Apache是httpd服務。這些可以安裝在一個機器上,也可以安裝在多臺機器上,但是httpd和PHP安裝在一臺機器上(php作為httpd的一個模組存在的。 他們兩者必須要在一起,才能實現效果)。
httpd,MySQL,PHP三者如何工作
靜態,就是直接由webserver處理的請求,比如圖片,js,css等,而動態的是需要和資料庫打交道的請求,比如你現在訪問ask.apelearn.com,登入使用者,發帖子,看帖子,這些都是需要和資料庫打交道的。這樣的就是動態。
安裝MySQL步驟:
安裝時在那個目錄下操作很重要,決定著你能否安裝成功。
下載MySQL到指定目錄下(/usr/local/src).
-
[[email protected] ~]# cd /usr/local/src/
-
[[email protected] src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
解壓包:
[[email protected] local]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
將解壓的包移動並重命名為/usr/local/mysql
-
[[email protected] local]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
-
[[email protected] mysql]# ls
-
bin data include man mysql-test scripts sql-bench
-
COPYING docs lib my.cnf README share support-files
建立MySQL使用者,建立/data/目錄:
-
[[email protected]
-
[[email protected] local]# mkdir /data/
安裝MySQL,指定使用者,指定目錄:
[[email protected] local]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
這時如果出現錯誤,如下圖:
少了一個模組,模組名字dumper,少什麼安裝什麼。
搜尋模組包名:
-
[[email protected] ~]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
-
perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel
-
perl-Data-Dumper-Names.noarch 0.03-17.el7 epel
搜出來四個,安裝完一個包後再安裝MySQL,還出錯,安裝下一個包,四個都安裝完肯定能安裝MySQL。其實它是靠perl-Data-Dumper.x86_64這個包。
安裝這個包:
[[email protected] ~]# yum install -y perl-Data-Dumper
錯誤2:./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-devel
安裝完成後就能安裝MySQL了。
[[email protected] ~]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
安裝完成後,檢驗是否安裝成功,沒有錯誤。 安裝MySQL後,立馬執行echo $? 顯示是0,就表示安裝成功,沒有問題。
[[email protected] ~]# echo $?
其實,echo $? 是檢測上一條命令是否執行成功
拷貝配置檔案(/support-files/my-large.cnf):
[[email protected] mysql]# cp support-files/my-large.cnf /etc/my.cnf
mysql的配置檔案就叫/etc/my.cnf 就在/etc下。
也可能你的/etc/my.cnf這個檔案本來就有了,被其他的包裝的時候帶過來了。
檢視是哪個包安裝的/etc/my.cnf
-
[[email protected] mysql]# rpm -qf /etc/my.cnf
-
mariadb-libs-5.5.52-1.el7.x86_64
這個也可以使用,不過要改一下檔案。
-
[mysqld]
-
datadir=/data/mysql
-
socket=/tmp/mysql.sock
-
# 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
複製啟動指令碼並修改屬性:
[[email protected] mysql]# support-files/mysql.server /etc/init.d/mysqld
修改啟動指令碼: basedir=/usr/local/mysql datadir=/data/mysql
-
# If you change base dir, you must also change datadir. These may get
-
# overwritten by settings in the MySQL configuration files.
-
basedir=/usr/local/mysql
-
datadir=/data/mysql
-
# Default value, in seconds, afterwhich the script should timeout waiting
-
# for server start.
修改啟動指令碼檔案許可權:
[[email protected] mysql]# chmod 755 /etc/init.d/mysqld
設定開機啟動:
[[email protected] ~]# chkconfig --add mysqld
也可以手動啟動:
[[email protected] ~]# service mysqld start
啟動起來了:
-
[[email protected] mysql]# ps aux |grep mysql
-
root 1535 0.0 0.1 115392 1688 ? S 19:07 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/shuai-01.pid
-
mysql 1863 0.1 45.2 1300784 452380 ? Sl 19:07 0:08 /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/shuai-01.err --pid-file=/data/mysql/shuai-01.pid --socket=/tmp/mysql.sock
-
root 3473 0.0 0.0 112680 976 pts/0 S+ 21:00 0:00 grep --color=auto mysql
監聽埠(3306):
-
[[email protected] 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:22 0.0.0.0:* LISTEN 1516/sshd
-
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2168/master
-
tcp6 0 0 :::3306 :::* LISTEN 1863/mysqld
-
tcp6 0 0 :::22 :::* LISTEN 1516/sshd
-
tcp6 0 0 ::1:25 :::* LISTEN 2168/master
如果沒有啟動指令碼,可以用命令列啟動:
命令列,指定配置檔案路徑,指定使用者,指定/datadir 加&丟入後臺。
-
[[email protected] mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
-
[2] 3723
-
[[email protected] mysql]# 171214 21:10:07 mysqld_safe Logging to '/data/mysql/shuai-01.err'.
-
171214 21:10:07 mysqld_safe Starting mysqld daemon with databases from /data/mysql
-
[[email protected] mysql]# !ps
-
ps aux |grep mysql
-
root 3545 0.0 0.1 113264 1612 pts/0 T 21:08 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
-
mysql 3670 11.1 0.0 0 0 pts/0 Z 21:08 0:20 [mysqld] <defunct>
-
root 3723 0.0 0.1 113264 1612 pts/0 S 21:10 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
-
mysql 3848 1.6 45.1 1300788 451364 pts/0 Sl 21:10 0:01 /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/shuai-01.err --pid-file=/data/mysql/shuai-01.pid --socket=/tmpmysql.sock
-
root 3872 0.0 0.0 112676 976 pts/0 R+ 21:11 0:00 grep --color=auto mysql
關閉時就只能killall:
[[email protected] mysql]# killall mysqld
killall會先停止讀寫操作,把已有的寫完後,就殺死MySQL服務。 而kill -9 pid 會啥都不管,直接殺掉程序。這樣做很可能導致資料的丟失甚至損壞表
MySQL有兩個引擎:innodb (小), myisam(大)
1、安裝MariaDB
安裝命令
yum -y install mariadb mariadb-server
安裝完成MariaDB,首先啟動MariaDB
systemctl start mariadb
設定開機啟動
systemctl enable mariadb
接下來進行MariaDB的相關簡單配置
mysql_secure_installation
首先是設定密碼,會提示先輸入密碼
Enter current password for root (enter for none):<–初次執行直接回車
設定密碼
Set root password? [Y/n] <– 是否設定root使用者密碼,輸入y並回車或直接回車 New password: <– 設定root使用者的密碼 Re-enter new password: <– 再輸入一次你設定的密碼
其他配置
Remove anonymous users? [Y/n] <– 是否刪除匿名使用者,回車
Disallow root login remotely? [Y/n] <–是否禁止root遠端登入,回車,
Remove test database and access to it? [Y/n] <– 是否刪除test資料庫,回車
Reload privilege tables now? [Y/n] <– 是否重新載入許可權表,回車
初始化MariaDB完成,接下來測試登入
mysql -uroot -ppassword
完成。
[[email protected] ~]# rpm -qa | grep mysql
[[email protected] ~]# rpm -qa | grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 [[email protected] ~]# find / -name mariadb-libs-5.5.56-2.el7.x86_64 find: ‘/run/user/1000/gvfs’: 許可權不夠 [[email protected] ~]# find . -name mariadb-libs-5.5.56-2.el7.x86_64 [[email protected] ~]# [[email protected] ~]# yum -y install mariadb mariadb-server 已載入外掛:fastestmirror, langpacks Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 12: Timeout on http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds') base | 3.6 kB 00:00:00 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock error was 12: Timeout on http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds') extras | 3.4 kB 00:00:00 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was 12: Timeout on http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds') updates | 3.4 kB 00:00:00 Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 正在解決依賴關係 --> 正在檢查事務 ---> 軟體包 mariadb.x86_64.1.5.5.56-2.el7 將被 安裝 ---> 軟體包 mariadb-server.x86_64.1.5.5.56-2.el7 將被 安裝 --> 正在處理依賴關係 perl-DBI,它被軟體包 1:mariadb-server-5.5.56-2.el7.x86_64 需要 --> 正在處理依賴關係 perl-DBD-MySQL,它被軟體包 1:mariadb-server-5.5.56-2.el7.x86_64 需要 --> 正在處理依賴關係 perl(Data::Dumper),它被軟體包 1:mariadb-server-5.5.56-2.el7.x86_64 需要 --> 正在處理依賴關係 perl(DBI),它被軟體包 1:mariadb-server-5.5.56-2.el7.x86_64 需要 --> 正在檢查事務 ---> 軟體包 perl-DBD-MySQL.x86_64.0.4.023-5.el7 將被 安裝 ---> 軟體包 perl-DBI.x86_64.0.1.627-4.el7 將被 安裝 --> 正在處理依賴關係 perl(RPC::PlServer) >= 0.2001,它被軟體包 perl-DBI-1.627-4.el7.x86_64 需要 --> 正在處理依賴關係 perl(RPC::PlClient) >= 0.2000,它被軟體包 perl-DBI-1.627-4.el7.x86_64 需要 ---> 軟體包 perl-Data-Dumper.x86_64.0.2.145-3.el7 將被 安裝 --> 正在檢查事務 ---> 軟體包 perl-PlRPC.noarch.0.0.2020-14.el7 將被 安裝 --> 正在處理依賴關係 perl(Net::Daemon) >= 0.13,它被軟體包 perl-PlRPC-0.2020-14.el7.noarch 需要 --> 正在處理依賴關係 perl(Net::Daemon::Test),它被軟體包 perl-PlRPC-0.2020-14.el7.noarch 需要 --> 正在處理依賴關係 perl(Net::Daemon::Log),它被軟體包 perl-PlRPC-0.2020-14.el7.noarch 需要 --> 正在處理依賴關係 perl(Compress::Zlib),它被軟體包 perl-PlRPC-0.2020-14.el7.noarch 需要 --> 正在檢查事務 ---> 軟體包 perl-IO-Compress.noarch.0.2.061-2.el7 將被 安裝 --> 正在處理依賴關係 perl(Compress::Raw::Zlib) >= 2.061,它被軟體包 perl-IO-Compress-2.061-2.el7.noarch 需要 --> 正在處理依賴關係 perl(Compress::Raw::Bzip2) >= 2.061,它被軟體包 perl-IO-Compress-2.061-2.el7.noarch 需要 ---> 軟體包 perl-Net-Daemon.noarch.0.0.48-5.el7 將被 安裝 --> 正在檢查事務 ---> 軟體包 perl-Compress-Raw-Bzip2.x86_64.0.2.061-3.el7 將被 安裝 ---> 軟體包 perl-Compress-Raw-Zlib.x86_64.1.2.061-4.el7 將被 安裝 --> 解決依賴關係完成
依賴關係解決
======================================================================================== Package 架構 版本 源 大小 ======================================================================================== 正在安裝: mariadb x86_64 1:5.5.56-2.el7 base 8.7 M mariadb-server x86_64 1:5.5.56-2.el7 base 11 M 為依賴而安裝: perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k perl-DBD-MySQL x86_64 4.023-5.el7 base 140 k perl-DBI x86_64 1.627-4.el7 base 802 k perl-Data-Dumper x86_64 2.145-3.el7 base 47 k perl-IO-Compress noarch 2.061-2.el7 base 260 k perl-Net-Daemon noarch 0.48-5.el7 base 51 k perl-PlRPC noarch 0.2020-14.el7 base 36 k
事務概要 ======================================================================================== 安裝 2 軟體包 (+8 依賴軟體包)
總下載量:21 M 安裝大小:110 M Downloading packages: 警告:/var/cache/yum/x86_64/7/base/packages/mariadb-server-5.5.56-2.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 金鑰 ID f4a80eb5: NOKEY mariadb-server-5.5.56-2.el7.x86_64.rpm 的公鑰尚未安裝 (1/10): mariadb-server-5.5.56-2.el7.x86_64.rpm | 11 MB 00:00:02 (2/10): mariadb-5.5.56-2.el7.x86_64.rpm | 8.7 MB 00:00:02 (3/10): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:00 (4/10): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:00 (5/10): perl-DBD-MySQL-4.023-5.el7.x86_64.rpm | 140 kB 00:00:00 (6/10): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00:00 (7/10): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:00 (8/10): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:00 (9/10): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00 (10/10): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:00 ---------------------------------------------------------------------------------------- 總計 8.1 MB/s | 21 MB 00:02 從 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 檢索金鑰 匯入 GPG key 0xF4A80EB5: 使用者ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>" 指紋 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 軟體包 : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda) 來自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : perl-Data-Dumper-2.145-3.el7.x86_64 1/10 正在安裝 : 1:mariadb-5.5.56-2.el7.x86_64 2/10 正在安裝 : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 3/10 正在安裝 : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 4/10 正在安裝 : perl-IO-Compress-2.061-2.el7.noarch 5/10 正在安裝 : perl-Net-Daemon-0.48-5.el7.noarch 6/10 正在安裝 : perl-PlRPC-0.2020-14.el7.noarch 7/10 正在安裝 : perl-DBI-1.627-4.el7.x86_64 8/10 正在安裝 : perl-DBD-MySQL-4.023-5.el7.x86_64 9/10 正在安裝 : 1:mariadb-server-5.5.56-2.el7.x86_64 10/10 驗證中 : perl-DBI-1.627-4.el7.x86_64 1/10 驗證中 : perl-Net-Daemon-0.48-5.el7.noarch 2/10 驗證中 : perl-Data-Dumper-2.145-3.el7.x86_64 3/10 驗證中 : perl-PlRPC-0.2020-14.el7.noarch 4/10 驗證中 : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 5/10 驗證中 : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 6/10 驗證中 : 1:mariadb-server-5.5.56-2.el7.x86_64 7/10 驗證中 : perl-IO-Compress-2.061-2.el7.noarch 8/10 驗證中 : perl-DBD-MySQL-4.023-5.el7.x86_64 9/10 驗證中 : 1:mariadb-5.5.56-2.el7.x86_64 10/10
已安裝: