一、LAMP:顾名思义,包括linux(操做系统)+Apache(httpd)+mysql(数据库软件)+php(软件代码)的缩写,php
用来创建Web服务器,三个角色能够能够再同一台服务器,也能够分开来:以下两种方式:css
(1):php能够做为httpd的一个模块(php module)的存在,二者必须在同一台机器上,才能有效果:mysql
(2):php单独做为fastcgi的形式,单独部署在一台服务器上,httpd须要时则调用便可:linux
二、LAMP的工做原理:用户访问数据,httpd分别处理两种请求,动态请求和静态请求:sql
动态请求:动态的数据,httpd经过php module和mysql数据库打交道,好比当用户须要登陆一个网页时,会先发送登陆请求到httpd服务器,再由php module去mysql处取登陆相关信息,用于和用户提交数据作对比,成功后则返回给用户一个信息:数据库
静态请求:静态的数据,好比图片、logo图片、文字、js css等,不须要和mysql打交道:httpd直接去服务器的某个目录去取数据:vim
三、mysql介绍:mysql是一种关系型数据库(将数据保存在不一样的表中,这样提升了速度和灵活性),mysql由mysql ab公司开发,后通过sun并于2009年被oracle收购:安全
mariaDB是mysql的一个分支,由mysql原做者及其余成员开发,现由maraDB公司维护,mariaDB5.5对应mysql5.5,均按照mysql的版本,而从2012.11.12开始则发布10.0.0版本,以mysql为基础,自行开发新功能:bash
四、mysql的版本:共有七个版本:服务器
community 社区版:
enterprise 企业版:
GA(generally available) 通用版,在生产环境中使用:
DMR(development milestone release) 开发里程碑版本:
RC(release candidate) 发行候选版本:
Beta 开放测试版本;Alpha 内部测试版本
五、mysql的安装:
(1):下载mysql 5.6版本:
[root@localhost_002 src]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
(2):解压mysql:
[root@localhost_002 src]# tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
(3):修更名称并挪到/usr/local/mysql下:
[root@localhost_002 src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
(4):建立mysql用户及数据库目录:
[root@localhost_002 src]# cd /usr/local/mysql/
[root@localhost_002 mysql]# useradd mysql #建立mysql用户:
[root@localhost_002 mysql]# mkdir /data/ #建立mysql数据库目录:
(5):初始化mysql:指定mysql用户和指定mysql的数据库路径: --user=mysql --datadir=/data/mysql/
[root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
报错信息1:
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
须要安装:yum install perl-Data-Dumper
报错信息2:
[root@localhost_002 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
须要安装相关的库文件: yum -y install libaio* libaio-dev*
[root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@localhost_002 mysql]# echo $?
0
(6)、拷贝默认配置文件到/etc/my.cnf下:
[root@localhost_002 mysql]# cp support-files/my-default.cnf /etc/my.cnf
(7)、拷贝启动脚本到/etc/init.d/mysqld:
[root@localhost_002 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
(8)、修改配置文件内容:/etc/my.cnf
[root@adai003 mysql]# vim /etc/my.cnf [mysqld] datadir=/data/mysql #修改mysql的配置目录: socket=/tmp/mysql.sock #修改socket: # 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
(9)、修改启动脚本:/etc/init.d/mysqld:
[root@localhost_002 mysql]# cat /etc/init.d/mysqld |grep -v ^#|grep -v ^$|head -15 basedir=/usr/local/mysql #设置mysql的程序目录: datadir=/data/mysql #设置数据库的目录: service_startup_timeout=900 lockdir='/var/lock/subsys' lock_file_path="$lockdir/mysql" mysqld_pid_file_path= if test -z "$basedir" then basedir=/usr/local/mysql bindir=/usr/local/mysql/bin if test -z "$datadir" then datadir=/usr/local/mysql/data fi
(10)、添加开机自启动: chkonfig:
[root@localhost_002 mysql]# chkconfig --add mysqld [root@localhost_002 mysql]# chkconfig --list mysqld mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
(11)、启动mysql:service mysqld restart
[root@localhost_002 mysql]# service mysqld restart Starting MySQL.Logging to '/data/mysql/localhost_002.err'. . SUCCESS!
详细安装命令以下:
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz 100%[===========================================================================================>] 328,882,304 1.76MB/s 用时 3m 13s 2018-08-21 20:53:43 (1.63 MB/s) - 已保存 “mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz” [328882304/328882304]) [root@localhost_002 src]# tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz #解压 [root@localhost_002 src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql #改变目录名称 [root@localhost_002 src]# cd /usr/local/mysql/ [root@localhost_002 mysql]# useradd mysql #建立mysql用户: [root@localhost_002 mysql]# mkdir /data/ #建立mysql数据库目录: [root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql #初始化mysql:报错信息以下: FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper #可知是缺乏这个包:搜索并安装这个包: [root@localhost_002 mysql]# yum list |grep rerl |grep -i dumper perl-Data-Dumper.x86_64 2.145-3.el7 base perl-XML-Dumper.noarch 0.81-17.el7 base [root@localhost_002 mysql]# yum install -y perl-Data-Dumper.x86_64 [root@localhost_002 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 #安装相关的库文件: [root@localhost_002 mysql]# yum -y install libaio* libaio-dev* #安装库文件: [root@localhost_002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql [root@localhost_002 mysql]# echo $? 0 #检查mysql安装是否有错误: 0则是没有错误: 或者看看是否有两个?号: [root@localhost_002 mysql]# cp support-files/my-default.cnf /etc/my.cnf #拷贝默认配置文件/etc/my.cnf: [root@localhost_002 mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷贝默认启动脚本到/etc/init.d/mysqld: 修改配置文件内容/etc/my.cnf [root@adai003 mysql]# vim /etc/my.cnf [mysqld] datadir=/data/mysql #修改mysql的配置目录: socket=/tmp/mysql.sock #修改socket: 修改启动脚本内容/etc/init.d/mysqld: [root@localhost_002 mysql]# cat /etc/init.d/mysqld |grep -v ^#|grep -v ^$|head -15 basedir=/usr/local/mysql #设置mysql的程序目录: datadir=/data/mysql #设置数据库的目录: [root@localhost_002 mysql]# chkconfig --add mysqld #设置开机自启动: [root@localhost_002 mysql]# chkconfig --list mysqld mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关 [root@localhost_002 mysql]# service mysqld restart #启动mysql服务:
六、有时候咱们没有写入到启动脚本下,也没有模板能够拷贝,还能够经过如下命令来启动mysql服务:
[root@localhost_002 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & #在后台执行该命令: [root@localhost_002 mysql]# 180821 22:07:27 mysqld_safe Logging to '/data/mysql/localhost_002.err'. 180821 22:07:27 mysqld_safe A mysqld process already exists [root@localhost_002 mysql]# !ps root 1616 0.0 0.1 11772 1588 pts/0 S 22:06 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost_002.pid #mysql服务已经启动: 那么如何关闭呢: killall [root@localhost_002 mysql]# killall5 mysqld
扩展:kill命令与killall的区别:
安装killall命令:[root@localhost_002 mysql]# yum install -y psmisc
kill命令和killall命令都是用来杀死系统中的进程,区别是:
kill用来杀死单个进程,killall用来杀死进程树
使用kill命令会马上结束正在运行中的进程,若是该进程正在进行磁盘的读写,或者数据正在内存还未保存到磁盘里,那么数据会由于进程的结束而丢失,而killall命令会等待该数据读写完毕后再将相关进程结束,相对来讲使用起来更加安全:
全部若是之后有mysqld的进程,一直杀不死,说明数据量很大,正在慢慢的写入到磁盘里去,不要用kill -9 去杀,会丢数据和损失表,建议使用killall 服务,而后慢慢等待:
关于mysqld有两个引擎:
myisam:比较小,存储空间比较下:
innodb:存储空间比较大:
uname:查看系统相关信息(内核版本、硬件架构、主机名称、操做系统类型):
-a:all,显示所有信息:
-m:machine,显示电脑类型:
-n:显示在网络上的主机名:
-r:release,显示操做系统发现版本号:
-s:显示系统名称:
-v:version:显示操做系统版本:
-p:显示处理类型或者unknown:
-i:输出硬件平台:
-o:输出操做系统名称:
通常软件包的安装方式有以下三种:
rpm包:不能手动指定安装的目录:
源码包:须要手动编译安装,比较繁琐:
二进制免编译包:方便快捷,把编译好的文件作成二进制文件,放在一个目录下打包压缩: