11.1LAMP架構介紹python
11.211.2 MySQL、MariaDB介紹mysql
11.1LAMP架構介紹git
Apache和PHP是一個總體,由於PHP是以一個模塊的形式和Apache結合在一塊兒,可是Apache不能直接和MySQL去鏈接,只能經過PHP這個模塊去MySQL中提取數據,拿到數據後,PHP把這個結果交給Apache,Apache再交給用戶。web
PHP和MySQL交互數據的操做、行爲,稱爲動態請求。sql
11.211.2 MySQL、MariaDB介紹shell
rpm包——>直接yum安裝便可vim
源碼包——>centos
二進制免編譯包——>這種包至關因而在發佈以前,先在一臺linux服務器上作了編譯,編譯完以後,把編譯完成的文件從新安排放到一個目錄下去,而後再打包壓縮,最後再發布。
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# ls
httpd-2.2.34 httpd-2.2.34.tar.gz
[root@localhost src]#
2.查詢平臺是多少位的
[root@localhost src]# uname -a //查看平臺,是多少位的
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost src]#
3.並去下載MySQL包,地址連接,直接wget下載MySQL 5.6版本便可
[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
4.下載完MySQL安裝包後,首先須要解壓
[root@localhost src]# ls
httpd-2.2.34 httpd-2.2.34.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]# ls
httpd-2.2.34 httpd-2.2.34.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]#
5.移動目錄,並修更名字
[root@localhost src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
6.進入到 /usr/local/mysql 目錄下
[root@localhost src]# cd !$
cd /usr/local/mysql
[root@localhost mysql]#
7.進入到 /usr/local/mysql 目錄下,首先 ls命令去查看下目錄中是否存在
[root@localhost mysql]# ls
bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files
[root@localhost mysql]#
8.建立MySQL的用戶,useradd mysql
[root@localhost mysql]# useradd mysql
[root@localhost mysql]#
9.建立 /data/ 目錄,若已存在,則可省略
[root@localhost mysql]# mkdir /data/
[root@localhost mysql]#
10.使用./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 初始化
[root@localhost 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
緣由:缺乏libaio庫文件
解決方法:yum install -y libaio*
[root@tianqi-01 mysql]# yum install -y libaio*
11.這時候會看到出現一個提示,缺乏Dumper模塊
12.解決思路
[root@localhost mysql]# yum list |grep perl |grep -i dumper
perl-Data-Dumper.x86_64 2.145-3.el7 base
perl-XML-Dumper.noarch 0.81-17.el7 base
[root@localhost mysql]#
13.會看到列出的一些包,只需安裝perl-Data-Dumper包便可——>如果不知道裝哪些包,能夠全部的包都安裝上
[root@localhost mysql]# yum install -y perl-Data-Dumper
14.而後再次初始化
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables...2018-02-07 05:41:11 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
15.在初始化完成後,如何去判斷初始化成功!兩種方法:
[root@localhost mysql]# echo $?
0
[root@localhost mysql]#
16.初始化完成,下面就是拷貝配置文件和啓動腳本
[root@localhost mysql]# ls support-files/my-default.cnf
support-files/my-default.cnf //mysql的模板配置文件
[root@localhost mysql]# ls /etc/my.cnf
/etc/my.cnf //mysql的配置文件就叫作my.cnf,並且固定放在 /etc下
[root@localhost mysql]#
17.這裏會看到centos7系統中,默認安裝了mariadb-libs包,或者是以前安裝包連帶着安裝的mariadb-libs包,因此在這裏會生成/etc/my.cnf
[root@localhost mysql]# rpm -qf /etc/my.cnf
mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost mysql]#
18.如果直接使用自帶的 /etc/my.cnf 文件,但須要修改其中的配置文件
[root@localhost mysql]# vim !$
vim /etc/my.cnf
[mysqld]
[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
[root@localhost mysql]# ls
bin COPYING data docs include lib man my.cnf mysql-test README scripts share sql-bench support-files
[root@localhost mysql]#
19.拷貝文件到 /etc/init.d/mysqld 中
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]#
20.自定義啓動腳本
[root@localhost mysql]# vim /etc/init.d/mysqld
把 basedir=/usr/local/mysql //指定你的程序目錄,放到/usr/local/mysql 下
把 datadir=/data/mysql //定義到/data/mysql 而後保存退出
21.修改權限,755權限——>默認是755權限,修改權限命令 chmod
[root@localhost mysql]# ll !$
ll /etc/init.d/mysqld
-rwxr-xr-x. 1 root root 10902 Feb 7 06:19 /etc/init.d/mysqld
[root@localhost mysql]#
22.若想開機啓動,須要將它加入到系統服務列表中去
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost mysql]#
[root@localhost mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
..... SUCCESS!
[root@localhost mysql]# ps aux | grep mysql //查看進程
root 1192 0.0 0.1 11768 1572 pts/0 S 06:25 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysq/localhost.localdomain.pid
mysql 1327 9.0 45.1 973060 451004 pts/0 Sl 06:25 0:05 /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 --socket=/tmp/mysql.sock
root 1361 0.0 0.0 112660 968 pts/0 S+ 06:26 0:00 grep --color=auto mysql
[root@localhost mysql]# netstat -lntp //查看監聽的端口,3306端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 895/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1001/master
tcp6 0 0 :::22 :::* LISTEN 895/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1001/master
tcp6 0 0 :::3306 :::* LISTEN 1327/mysqld
[root@localhost mysql]#
23.假若有一天,沒有把啓動的腳本放到/etc/init.d 下,或者根本沒有這樣的啓動腳本去拷貝,可使用如下方法去啓動
[root@localhost mysql]# service mysqld stop //首先先停掉mysqld服務
Shutting down MySQL.. SUCCESS!
[root@localhost mysql]# !ps //查看mysqld進程是否還在
ps aux | grep mysql
root 1390 0.0 0.0 112660 968 pts/0 R+ 06:29 0:00 grep --color=auto mysql
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & //命令行的方式啓動,先指定配置文件所在路徑,而後指定user用戶,指定datadir(這個datadir也能夠在my.cnf 文件中去定義的),再加一個& 符號,丟到後臺去
[1] 1391
[root@localhost mysql]# 180207 06:31:45 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'.
180207 06:31:45 mysqld_safe Starting mysqld daemon with databases from /data/mysql
[root@localhost mysql]# !ps //查看進程是否啓動成功
ps aux | grep mysql
root 1391 0.0 0.1 113260 1580 pts/0 S 06:31 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
mysql 1514 0.3 44.9 973060 449752 pts/0 Sl 06:31 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 --socket=/tmp/mysql.sock
root 1537 0.0 0.0 112660 968 pts/0 R+ 06:33 0:00 grep --color=auto mysql
[root@localhost mysql]# !net
netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 895/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1001/master
tcp6 0 0 :::22 :::* LISTEN 895/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1001/master
tcp6 0 0 :::3306 :::* LISTEN 1514/mysqld
[root@localhost mysql]#
24.關閉mysqld服務
[root@localhost mysql]# killall mysqld
[root@localhost mysql]# 180207 06:38:35 mysqld_safe mysqld from pid file /data/mysql/localhost.localdomain.pid ended
[1]+ Done /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
[root@localhost mysql]# !ps
ps aux | grep mysql
root 1554 0.0 0.0 112660 972 pts/0 R+ 06:39 0:00 grep --color=auto mysql
[root@localhost mysql]#
友情連接:阿銘Linux