LAMP是Linux+Apache(httpd)+MySQL+PHP的簡稱html
• Linux:操做系統mysql
• Apache(httpd):WEB服務器軟件,提供WEB服務linux
• MySQL:關係型數據庫用於存儲數據(字符串)sql
• PHP:腳本語言(編寫網站爲主)數據庫
Linux是操做系統同時也是架構的基礎,Apache、MySQL以及PHP是基於操做系統運行的軟件或服務或角色,這三個角色能夠再同一機器上運行,也能夠分開運行(Apache要和PHP在一塊兒)。apache
• httpd、PHP、MySQL三者的工做方式vim
Apache和PHP是一個總體(PHP以模塊的形式與Apache相結合),Apache自己不能直接與MySQL進行交互,要經過PHP模塊進行交互。centos
用戶經過瀏覽器向WEB服務器(Apache)發送請求,請求可分爲兩類,一類是靜態請求(加載圖片,訪問相關資源),另外一類是動態請求(登陸,編輯)。當Apache識別用戶請求爲靜態請求時,Apache與靜態文件進行交互,調取用戶所需文件;當Apache識別用戶請求爲動態請求時,經過PHP模塊與MySQL進行交互,將用戶提供的數據與MySQL中數據進行比對、寫入、刪除等,最終返回結果給用戶。瀏覽器
• MySQL是一個關係型數據庫,由mysql ab公司開發,mysql在2008年被sun公司收購(10億刀),2009年sun公司被oracle公司收購(74億刀)。安全
• MySQL官網https://www.mysql.com 最新版本5.7GA/8.0DMR。
• MySQL5.6變化比較大,5.7性能上有很大提高。
• Mariadb爲MySQL的一個分支,官網https://mariadb.com/最新版本10.2。
• MariaDB主要由SkySQL公司(現改名爲MariaDB公司)維護,SkySQL公司由MySQL原做者帶領大部分原班人馬創立。
• Mariadb5.5版本對應MySQL的5.5,10.0對應MySQL5.6。
• Community 社區版本,Enterprise 企業版。
• GA(Generally Available)指通用版本,在生產環境中用的。
• DMR(Development Milestone Release)開發里程碑發佈版。
• RC(Release Candidate)發行候選版本。
• Beta開放測試版本,Alpha內部測試版本。
• MySQL的幾個經常使用安裝包:rpm、源碼、二進制免編譯
二進制包是區分平臺的,centos7以前的版本都是區分32位和64位,centos7直接選擇64位安裝。
[root@linux-5 src]# uname –i //查看linux是多少位 x86_64
[root@linux-5 ~]# cd /usr/local/src //建議將全部軟件包都放在這個目錄下
下載地址到r.aminglinux.com找最新的下載
[root@linux-5 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
注:本人因爲網絡問題,沒法直接將安裝包下載至Linux操做系統中,故採用先下載至本地Windows系統上(版本5.6.35),後經過rz命令上傳至Linux操做系統上
1.解壓
[root@linux-5 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
2.重命名
[root@linux-5 src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql [root@linux-5 ~]# cd /usr/local/mysql [root@linux-5 mysql]# ls bin data include man README share support-files COPYING docs lib mysql-test scripts sql-bench
3.創建mysql用戶,由於啓動mysql時須要該用戶
[root@linux-5 mysql]# useradd -s /sbin/nologin mysql
4.建立存放數據庫目錄的目錄
[root@linux-5 mysql]# mkdir /data
5.初始化
[root@linux-5 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql //--user=mysql 以用戶mysql身份運行,--datadir=/data/mysql存放數據庫的目錄 ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper //這裏出現了錯誤,緣由是缺乏包 perl-Module-Install 可使用yum list 來查看缺乏包 [root@linux-5 mysql]# yum list |grep perl |grep -i dumper Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast perl-Data-Dumper.x86_64 2.145-3.el7 base perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel perl-Data-Dumper-Names.noarch 0.03-17.el7 epel perl-XML-Dumper.noarch 0.81-17.el7 base 安裝perl-Data-Dumper包 [root@linux-5 mysql]# yum install -y perl-Data-Dumper
6.而後再執行一次
[root@linux-5 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 若是看到兩個OK說明執行正確,或者echo $? 結果爲0 也表示執行正確。 [root@linux-5 mysql]# echo $? 0
Mysql的配置文件在/usr/local/mysql/support-files/目錄下my-default.cnf,它是msyql的模板配置文件
1.拷貝配置文件
[root@linux-5 mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf cp:是否覆蓋"/etc/my.cnf"? y //這裏已經存在文件my.cnf,這是以前系統rpm安裝留下的,咱們能夠查看它是哪一個包安裝的 [root@linux-5 mysql]# rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64
咱們這裏直接按「y」覆蓋便可
2.修改配置文件
[root@linux-5 ~]# vim /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. basedir = /usr/local/mysql //mysql的安裝目錄 datadir = /data/mysql //存放數據庫的目錄 port = 3306 //端口 # server_id = ..... //mysql的ID號,作主從的時候要用到 socket = /tmp/mysql.sock //mysql服務監聽的套件字地址,也是用來通訊的。 # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M
1.複製啓動腳本
[root@linux-5 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2.修改啓動腳本
[root@linux-5 mysql]# vim /etc/init.d/mysqld basedir=/usr/local/mysql datadir=/data/mysql
3.修改權限
[root@linux-5 mysql]# chmod 755 /etc/init.d/mysqld
4.將mysqld服務加入到系統服務列表中
[root@linux-5 mysql]# chkconfig --add mysqld
5.設置開機啓動
[root@linux-5 mysql]# chkconfig mysqld on
6.啓動服務
[root@linux-5 ~]# service mysqld start Starting MySQL.Logging to '/data/mysql/linux-5.err'. . SUCCESS!
注:若是啓動不了,請到/data/mysql/目錄下查看錯誤日誌,這個日誌一般是主機名.err
7.查看mysql進程
[root@linux-5 ~]# ps aux |grep mysqld root 3233 0.0 0.0 11772 1596 pts/1 S 19:58 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/linux-5.pid mysql 3395 0.8 24.0 973052 449444 pts/1 Sl 19:58 0:01 /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/linux-5.err --pid-file=/data/mysql/linux-5.pid --socket=/tmp/mysql.sock --port=3306 root 3443 0.0 0.0 112676 984 pts/1 S+ 20:01 0:00 grep --color=auto mysqld
8.查看mysql監聽的端口
[root@linux-5 ~]# netstat -lnp |grep mysqld tcp6 0 0 :::3306 :::* LISTEN 3395/mysqld unix 2 [ ACC ] STREAM LISTENING 55465 3395/mysqld /tmp/mysql.sock
若是咱們不知道mysql的啓動文件,咱們還可使用命令行的方法來啓動mysql 先關閉以前打開的mysql
[root@linux-5 mysql]# service mysqld stop Shutting down MySQL.. SUCCESS!
執行命令行
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & //--defaults-file=/etc/my.cnf指定配置文件的路徑
注:在使用kill殺死進程時,最好使用killall,不建議使用kill pid,killall更加安全一些,不會當即中止進程,以mysqld爲例,當MySQL寫數據時,killall會等待數據徹底寫入完畢後再殺死進程,若是使用killall進程較長時間沒有殺死,千萬不要用kill -9強行殺死進程,不然極可能形成數據丟失,甚至數據庫表的損壞。