lamp架構&安裝MySQL

第十一章 LAMP架構

11.1 LAMP架構介紹

LAMP指的Linux(操做系統)、Apache(httpd 服務器),MySQL(數據庫軟件) 和PHP(有時也是指Perl或Python) 的縮寫,通常用來創建web 服務器(三個角色能夠在一臺機器也能夠分開,可是Apache和PHP要安裝在一塊兒) 。css

Apache、PHP、MySQL工做模式


說明: 服務器上的圖片、js、css等文件屬於靜態文件;數據庫文件是動態文件。mysql

11.2 MySQL_MariaDB介紹

MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。linux

MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護。MariaDB直到5.5版本,均依照MySQL的版本。從2012年11月12日起發佈的10.0.0版開始,再也不依照MySQL的版號。10.0.x版以5.5版爲基礎,加上移植自MySQL5.6版的功能和自行開發的新功能。web

MySQL版本:
community 社區版;enterprise 企業版;GA(generally available) 通用版,在生產環境中使用;DMR(development milestone release) 開發里程碑版本;RC(release candidate) 發行候選版本;Beta 開放測試版本;Alpha 內部測試版本。sql

11.3-11.5 MySQL安裝

uname命令

uname命令用於打印當前系統相關信息(內核版本號、硬件架構、主機名稱和操做系統類型等)。數據庫

語法: uname [options]
Options:
-a:=all,顯示所有信息
-m:=machine,顯示電腦類型
-n:顯示在網絡上的主機名
-r:顯示操做系統的發行編號
-s:顯示操做系統名稱
-v:顯示操做系統版本
-p:顯示處理器類型或「unknown」
-i:輸出硬件平臺
-o:輸出操做系統名稱vim

MySQL經常使用安裝包

rpm包、源碼包、二進制免編譯包。安全

MySQL-5.6-64位二進制免編譯包鏡像下載地址:http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz服務器

安裝MySQL

準備工做

  • 切換至/usr/local/src/目錄
[root@1 ~]# cd /usr/local/src/
  • 下載MySQL二進制免編譯包
[root@1 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
  • 解壓包
[root@1 src]# tar zxvf /usr/local/src/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

初始化

  • 將安裝文件移動到/usr/local/目錄
[root@1 src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
  • 切換至mysql目錄下
[root@1 mysql]# cd /usr/local/mysql/
  • 建立MySQL用戶
[root@1 mysql]# useradd mysql
  • 建立數據庫目錄
[root@1 mysql]# mkdir /data/
  • 初始化
[root@1 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

錯誤排查網絡

  • 錯誤提示1:
[root@1 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

解決辦法:

根據提示搜索相應的安裝包並進行安裝:
[root@1 mysql]# yum install -y perl-Data-Dumper
  • 錯誤提示2:
[root@1 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@1 mysql]#  yum -y install libaio* libaio-dev*

配置MySQL

完成上述操做後先檢測"./scripts"命令是否正確執行:

[root@1 mysql]# echo $?
0
  • 拷貝配置文件到/etc/my.cnf
[root@1 mysql]# cp support-files/my-default.cnf  /etc/my.cnf
  • 編輯MySQL的系統配置文件/etc/my.cnf
將模板中內容改爲以下格式:
[root@1 mysql]# vim /etc/my.cnf
[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
  • 修改啓動腳本
將啓動腳本添加到系統配置文件/etc/init.d/中:
[root@1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld  

修改配置文件:
[root@1 mysql]# vim /etc/init.d/mysqld
……
basedir=/usr/local/mysql
datadir=/data/mysql
……

更改配置文件權限(默認狀況是755):
[root@1 mysql]# chmod 755 /etc/init.d/mysqld
此步驟能夠省略!
  • 啓動MySQL服務
將MySQL服務添加到開機啓動服務中:
[root@1 mysql]# chkconfig --add mysqld
[root@1 mysql]# chkconfig --list
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服務:
方法1:
[root@1 mysql]# /etc/init.d/mysqld start 
方法2:
[root@1 mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/adai003.err'.
.. SUCCESS!
  • 異常啓動MySQL服務:
    情景:MySQL啓動腳本沒法添加到/etc/init.d/中或者沒有啓動腳本,可使用以下方法啓動:
[root@1 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
# 後臺執行該命令

kill命令&killall命令

kill命令和killall命令都是用來殺死系統中的進程,區別是:

  1. kill用來殺死單個進程,killall用來殺死進程樹
  2. 使用kill命令會馬上結束正在運行中的進程,若是該進程正在進行磁盤的讀寫,那麼數據會由於進程的結束而丟失,而killall命令會等待該數據讀寫完畢後再將相關進程結束,相對來講使用起來更加安全。
相關文章
相關標籤/搜索