11月9日任務
11.1 LAMP架構介紹
11.2 MySQL、MariaDB介紹
11.3/11.4/11.5 MySQL安裝php
LAMP:Linux + Apache(httpd) + MySQL + PHPmysql
對於搭建一個簡單的LAMP架構,能夠將上述的3中軟件安裝再同一個Linux內;對於大的LAMP架構,必須保證Apache和PHP在同一個服務器上,MySQL安裝在另外的服務器,經過網絡來進行數據的交互。linux
MySQL是一個關係型數據庫,由mysql ab公司開發,並於2008年被sun公司收購;2009年sun公司被oracle公司收購。c++
MySQL官網:https://www.mysql.comsql
最新版本5.7GA/8.0DMR數據庫
MySQL5.6變化比較大,5.7性能上有很大提高apache
Mariadb是MySQL的一個分支,官網https://mariadb.com/ 最新版本10.2瀏覽器
MariaDB主要由SkySQL公司(現改名爲MariaDB公司)維護,該公司爲MySQL原班人馬建立。服務器
MariaDB5.5對於MySQL5.5,10.0對應MySQL5.6網絡
可使用rpm、源碼、二進制免編譯的方式來安裝MySQL。
推薦使用二進制免編譯安裝包,解壓後初始化便可使用。
[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz --... 10:44:16-- http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 正在解析主機 mirrors.sohu.com (mirrors.sohu.com)... 221.236.12.140 正在鏈接 mirrors.sohu.com (mirrors.sohu.com)|221.236.12.140|:80... 已鏈接。 已發出 HTTP 請求,正在等待迴應... 200 OK 長度:316320366 (302M) [application/octet-stream] 正在保存至: 「mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz」 100%[================================>] 316,320,366 417KB/s 用時 5m 47s ... 10:50:03 (891 KB/s) - 已保存 「mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz」 [316320366/316320366])
[root@localhost src]# tar zxf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz [root@localhost src]# ll 總用量 308912 drwxr-xr-x. 13 root root 191 11月 11 10:54 mysql-5.6.36-linux-glibc2.5-x86_64
[root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql [root@localhost src]# cd /usr/local/mysql/
[root@localhost mysql]# useradd mysql
[root@localhost mysql]# mkdir /data
# 數據庫初始化 [root@localhost 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@localhost mysql]# yum list | grep perl | grep -i 'dumper' 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 [root@localhost mysql]# yum install -y perl-Data-Dumper # 從新初始化 [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql # 判斷是否成功初始化 [root@localhost mysql]# echo $? 0
# 原/etc/目錄下存在my.cnf文件,直接覆蓋 [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf cp:是否覆蓋"/etc/my.cnf"? y # 修改配置文件內basedir和datadir參數 [root@localhost mysql]# vi /etc/my.cnf 修改[mysqld]內的2行便可 basedir = /usr/local/mysql datadir = /data/mysql 保存退出
# 拷貝啓動腳本至開機啓動目錄/etc/init.d/,並重命名爲mysqld [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld # 修改mysqld配置文件, [root@localhost mysql]# vi /etc/init.d/mysqld 一樣要修改一下參數 basedir=/usr/local/mysql datadir=/data/mysql # 修改權限並使用chkconfig設置開機啓動 [root@localhost mysql]# chmod 755 /etc/init.d/mysqld [root@localhost mysql]# chkconfig --add mysqld # 查看是否配置成功 [root@localhost mysql]# chkconfig --list 注意:該輸出結果只顯示 SysV 服務,並不包含原生 systemd 服務。SysV 配置數據可能被原生 systemd 配置覆蓋。 若是您想列出 systemd 服務,請執行 'systemctl list-unit-files'。 欲查看對特定 target 啓用的服務請執行 'systemctl list-dependencies [target]'。 mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關 netconsole 0:關 1:關 2:關 3:關 4:關 5:關 6:關 network 0:關 1:關 2:開 3:開 4:開 5:開 6:關
[root@localhost mysql]# service mysqld start Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'. .. SUCCESS! [root@localhost mysql]# ps aux | grep mysqld root 2856 0.0 0.1 113264 1616 pts/0 S 13:52 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid mysql 2990 8.5 45.0 1308984 450220 pts/0 Sl 13:52 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/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid root 3019 0.0 0.0 112676 972 pts/0 R+ 13:53 0:00 grep --color=auto mysqld # 關閉mysqld [root@localhost mysql]# service mysqld stop 或 [root@localhost mysql]# /etc/init.d/mysqld stop
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & [1] 3067 [root@localhost mysql]# 171111 14:02:06 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'. 171111 14:02:06 mysqld_safe Starting mysqld daemon with databases from /data/mysql [root@localhost mysql]# !ps ps aux | grep mysqld root 3067 0.1 0.1 113268 1600 pts/0 S 14:02 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql mysql 3189 6.8 44.9 1300788 449528 pts/0 Sl 14:02 0:00 /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/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid root 3212 0.0 0.0 112676 976 pts/0 S+ 14:02 0:00 grep --color=auto mysqld [root@localhost mysql]# killall mysqld 也能夠經過kill命令關閉mysql主進程來關閉 [root@localhost mysql]# kill 3189
killall命令安裝:yum install -y psmisc
也可以使用kill命令來關閉mysql進程,可是會形成當前讀寫的部分數據丟失;
killall命令則會中止後續的讀寫操做,並將以前未寫入磁盤的數據保存到磁盤後,而後殺死進程。
在使用killall關閉mysql時會有時短期關閉不了,不要緊,由於數據過多須要時間,等待便可,千萬不要使用kill -9強制殺死,會形成數據的丟失!
編譯安裝前提
yum install -y gcc gcc-c++
安裝mysql
yum install -y perl-Data-Dumper libaio-devel