1、LAMP架構介紹:php
Linux+ Apache(httpd)+ mysql + phphtml
操做系統+外網服務軟件 + 存儲軟件 + 腳本語言(由C開發)java
PHP網站mysql
三個角色能夠裝在一臺機器,也能夠分開,可是httpd要和php在一塊兒(php是以模塊的形式和apache結合在一塊兒的,apache經過php和mysql打交道,)linux
動態請求:用戶經過帳號和密碼登陸apache,apache經過php去mysql裏比對數據,對上後apache會返回給用戶登陸狀態c++
靜態請求:用戶經過apache登陸,apache直接去linux某個目錄中去拿靜態的文件或圖片。不與mysql打交道sql
2、mysql/mariaDB介紹shell
mysql是一個關係型數據庫。由mysql ab公司開發。在2008年被sun公司收購。sun公司(java)於2009年被oracle(數據庫)公司收購。mysql走上了商業路線。官網:www.mysql.com 在版本5.6開始變化比較大。5.7性能上有很大提高。數據庫
mariadb爲mysql一個分支。官網爲www.mariadb.com,由原做者帶領大部分原班人馬創立。mariadb5.5對應mysql5.5,mysql5.6對應maiadb10.0。apache
Community 開源版本
enterprise 企業版
GA 通用版本,再生產環境中使用
DMR 開發里程碑版本(有重大突破的版本)
RC 發行候選版本
Beta 開發測試版本(可能存在bug)
Alpha 內部測試版本
3、Mysql安裝
uname -a 查看當前版本信息
[root@lnmp ~]# uname -a
Linux lnmp 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
安裝:rpm(沒有辦法自定義安裝路徑),源碼,二進制免編譯(能夠自定義安裝路徑)
解壓mysql的二進制免編譯包
tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
將他移動並更名爲
mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
ls #查看當前目錄下的的文件
切換到/usr/local/mysql目錄下
建立mysql用戶
useradd mysql
mysql 數據庫的默認儲存數據文件的路徑在/var/lib/mysql,可是實際中,咱們在安裝時經常就須要定製安裝數據庫路徑,建立data
mkdir /data
初始化
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 生成數據庫系統,指定用戶爲mysql,儲存數據庫路徑放在/data/下
可能遇到的問題
一、
解決辦法:yum install -y perl-XML-Dumper #安裝須要的包
問題二、
解決辦法是: yum install libaio-devel
初始化成功
拷貝配置文件到/etc/my.cnf (可能已經存在my.cnf文件,多是由於以前裝過,也多是別的數據庫的配置)
cp support-files/my-default.cnf /etc/my.cnf
(源文件已經有時,在複製就會覆蓋)
或者(不復制support-files/my-default.cnf /etc/my.cnf 時操做)vim /etc/myt.cnf
拷貝mysql啓動腳本而且編輯
cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld #[mysqld]底下添加
basedir=/usr/local/mysql 指定了mysql程序目錄
datadir=/data/mysql 指定了mysql存儲數據目錄
MySQL數據庫默認啓動腳本爲mysql.server
[root@localhost mysql]# ls support-files/
設置權限爲755 (有時候默認是755)
chmod 755 /etc/init.d/mysqld
若是想開機啓動,把它添加到系統服務列表裏
chkconfig --add mysqld 添加到系統服務列表
chkconfig --list 查看系統服務列表
service mysqld start / / etc/init.d/mysqld start 都是啓動mysql服務
ps aux|grep mysql 查看進程
netstat -lntp 查看監聽的端口
vi auto_install_lamp.sh、
#!/bin/bash
#2017年10月10日15:14:12
#auto install Lamp soft
#by author www.jfedu.net
#######################
#Install APACHE WEB SOFT
yum install httpd httpd-devel httpd-tools -y
#Install MYSQL DB SOFT
yum install mysql mysql-server mysql-devel -y
#Install PHP WEB SOFT
yum install php php-devel php-common php-mysql -y
#Restart LAMP service
/etc/init.d/httpd restart
/etc/init.d/mysqld restart
#Create LAMP Test Pages
cd /var/www/html/
touch index.php
echo "<?php
phpinfo();
?>">index.php
############################
#!/bin/bash
#2017年10月10日15:30:45
#auto install Lamp soft
#by author www.jfedu.net
#######################
#Install APACHE WEB SOFT
yum install gcc gcc-c++ glibc glibc-delvel -y
yum install apr apr-devel apr-util apr-util-devel wget -y
cd /usr/src
wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
tar -xzvf httpd-2.2.34.tar.gz
cd httpd-2.2.34
./configure --prefix=/usr/local/apache2/ --enable-so --enable-rewirte --enable-echo --enable-info --enable-ssl
make -j8
make -j8 install
pkill httpd
/usr/local/apache2/bin/apachectl start
ps -ef|grep httpd
#Install MYSQL DB SOFT
cd /usr/src/
wget -c http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz
tar -xzf mysql-5.5.20.tar.gz
cd mysql-5.5.20
yum install cmake ncurses-devel ncurses -y
cmake . -DCMAKE_INSTALL_PREFIX=/data/mysql/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/data/ \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
make
make install
#Install PHP WEB SOFT
cd /usr/src
wget -c http://mirrors.sohu.com/php/php-5.3.28.tar.bz2
tar jxf php-5.3.28.tar.bz2
cd php-5.3.28 ;
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql55/
make -j8
make -j8 install
#LAMP config for PHP module
cd /usr/local/apache2/conf/
echo "AddType application/x-httpd-php .php">>httpd.conf
sed -i 's/index.html/index.php index.html/g' httpd.conf
cat>/usr/local/apache2/htdocs/index.php<<EOF
<?php
phpinfo();
?>
EOF
/usr/local/apache2/bin/apachectl restart
#############################
#!/bin/bash
#2017年7月3日10:46:50
#by author jfedu.net
##################
#Install apache server
yum intall httpd httpd-devel -y
#Install mysql server
yum intall mariadb mariadb-server mariadb-devel -y
#Install php server
yum intall php php-mysql php-devel -y
#Start Httpd and Mysql server
systemctl restart httpd.service
systemctl restart mariadb.service
#create PHP test Pages
touch /var/www/html/index.php
<?php
phpinfo();
?>
常見問題:
yum install php php-mysql mysql
yum install mysql-server //這個必須安裝,纔會有/etc/init.d的mysqld
PS: 1. 若出現錯誤 Lost connection to MySQL server at 'reading initial communication packet', system error: 111
有多是mysql服務沒打開,可用命令service mysqld start
2.若出現錯誤ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.18.9' (113)
極可能是防火牆的問題
iptables -F
iptables -L
這樣就解決了
2\
另一種方法啓動MySQL,&符號表示丟到後臺
killall mysqld 殺死mysql進程(不要常常用kill這個命令)
mysql常見的2中引擎
innodb 比較大 和 myisam 比較小
killall 和 kill 的區別 killall很理性,會在讀寫完成後在結束進程