11.1 LAMP架構介紹
11.2 MySQL、MariaDB介紹
11.3/11.4/11.5 MySQL安裝
LAMP架構介紹
從現在開始了針對實際工作的內容。
L Linux
A Apache(HTTPD)
M Mysql
P PHP
三個角色可以在一臺機器,也可以分開。httpd和php要在一起,數據庫可以從遠程訪問,或者分佈式訪問。
MySQL_MariaDB介紹
Mariadb
MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,採用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社區採用分支的方式來避開這個風險。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕鬆成爲MySQL的代替品。在存儲引擎方面,10.0.9版起使用XtraDB(名稱代號爲Aria)來代替MySQL的InnoDB。
MariaDB由MySQL的創始人麥克爾·維德紐斯主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL AB賣給了SUN,此後,隨着SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自麥克爾·維德紐斯的女兒瑪麗亞(英語:Maria)的名字。
當前最新(2018.05)的版本有兩種mariadb ax tx。以下是簡單的區別。
安裝MYSQL
主要有三種安裝方式
rpm。yum安裝。缺點是不好定義路徑。默認安裝在usr/local
源碼安裝。config make make install 。mysql是cmake而不是make。
二進制免編譯。是指相當於在發佈之前,首先在一臺linux服務器上做了一個編譯,編譯完之後將編譯完成的文件重新放到一個目錄下後打包壓縮併發布。好處是不需要花很大的精力編譯,直接使用。可以直接放到需要的指定目錄下。
接下來演示的是第三種方式來安裝。
下載包。首先要到下載目錄,use/local/src
下載的時候要區分平臺,要下載對應的32/64位包。查看自己系統是什麼平臺,使用 uname -a
然後下載對應的二進制包
http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
2. 解壓
3. 解壓後的目錄改名同時移動到/usr/local/mysql目錄下
4. 進入mysql/後創建一個mysql的用戶和一個data/目錄---存放mysql的數據,數據目錄
5 初始化mysql這個庫,指定mysql的用戶是什麼,這裏我們是mysql這個用戶 然後再指定數據的目錄是 /data
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
這出現了一個錯誤
這裏提供了一個如何查找缺失包或者模塊的思路,就是yum 查找 yum list |grep perl |grep -i dumper
如果不確定的話可以將以上幾種都安裝一遍。實際上這需要安裝的是yum install -y perl-Data-Dumper
安裝完之後重新執行
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
成功
6. 初始化完成了,接下來需要拷貝配置文件和啓動腳本。
模板配置文件:mysql/support-files/my-default.cnf 需要拷貝到 /etc/my.cnf my.cnf就是mysql的配置文件的名字,且在etc下,如果用其他名字或者放在其他位置需要在啓動的時候進行指定。
這個時候會發現在etc目錄下已經有了這個配置文件,其實無妨,改成需要的就好。也可以通過rpm -qf來查這個文件是從哪來的。
然後 vim /etc/my.cnf 進行修改配置
啓動腳本:cp mysql/support-files/mysql.server /etc/init.d/mysqld 拷貝後有幾處地方需要編輯
basedir用來指定mysql 程序目錄
datadir用來定義數據存放的位置
然後將配置文件的權限給成755
將其加入系統服務列表中去 chkconfig --add mysqld 然後查看一下,下次開機會自動啓動。
有幾種啓動服務的方式
service mysqld start
/etc/init.d/mysqld start
查看進程
看看監聽的端口是什麼端口
還有另外一種命令行啓動的方法
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & 放到後臺操作
killall mysqld 關掉服務,因爲是命令行啓動的,並非服務啓動。killall的好處是先停止寫讀操作,完成當前的寫讀之後纔將進程殺死。