37.LAMP介绍 MySQL安装

11.1 LAMP架构介绍php

11.2 MySQL、MariaDB介绍java

11.3/11.4/11.5 MySQL安装mysql

 

 

 

 

11.1 LAMP架构介绍linux

~1. Linux+Apache(httpd)+MySQL+PKP 的简称为LAMP架构web

Linux指的是操做系统,例如centossql

Apache这里的apache指的是提供web的服务软件,他真正的名字是httpd。习惯上叫作Apacheshell

MySQL是存储的一个软件。存的是数据,是一些字符串数据库

PHP是脚本语言。和shell相似可是比shell复杂。像C语言apache

~2. php网站 (Google、淘宝、百度、51cto博客、猿课论坛)这些都是用PHP写的centos

~3. Apache、MySQL、PHP这三个角色能够在一台机器、也能够分开(httpd和PHP要在一块儿,MySQL能够单独一台机器)

 

~4.httpd、PHP、MySQL三者如何工做

Apache和PHP是一个总体(由于要在一台服务器上),是由于PHP是以一个模块的形式和Apache结合在一块儿的。Apache不能直接和MySQL相互的打交道,只能经过PHP这个模块去MySQL里面拿数据,拿到数据以后PHP再把这个结果交给Apache,Apache再交给用户。其中,PHP和MySQL相连,去取数据这种的行为叫作 动态的请求

那什么叫动态,是叫静态:好比咱们访问猿课论坛,首先咱们得登陆吧,登陆的过程就是动态的过程。就像咱们上面说的,咱们登陆论坛,把帐号密码交给Apache,Apache经过PHP去MySQL里面找这个帐号密码是否是匹配的。而后再把Apache再把这个结果交给咱们用户。这就是动态的请求

咱们登陆论坛的时候,会有图片,好比论坛的logo。咱们用户向Apache请求的时候,他并无去MySQL打交道。而是去咱们linux的某一个目录下去找。这就是静态的请求

MySQL里面不能存图片、文件。那他里面存的是,像用户名 密码、还有咱们发的帖子、还有积分

 

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

11.2 MySQL/MariaDB介绍:

 

MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司(java)收购(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)发行候选版本(即即将成为GA版本)。Beta开放测试版本(公测)。Alpha内部测试版本(内测)

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

11.3/11.4/11.5 MySQL安装:

 

 

MySQL的几个经常使用的安装包: rpm(直接yum)、源码包、二进制免编译(可指定目录,相似于rpm)

 

二进制免编译方法:

cd /usr/local/src

wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

cd /usr/local/mysql

useradd mysql

mkdir /data/

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

cp support-files/my-default.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld

定义basedir和datadir

basedir=/usr/local/mysql

datadir=/data/mysql

/etc/init.d/mysqld start 用这个命令把mysqld启动起来

(chkconfig --add mysqld 开机启动。chkconfig --list并查看一下列表)

也能够用service mysqld start用这个命令把mysql启动起来

也能够用命令行的方式把它启动起来:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &

其中--defaults-file=/etc/my.cnf是指定他配置文件所在的路径

用这种命令行的方式把它启动起来,关闭的话,只能用killall mysql,把它kill掉。固然咱们也能够用kill pid来杀死这个进程。可是尽可能用killall,由于mysql在读写的时候,有一部分还未写入到磁盘,只是暂时保存在内存中,咱们要是直接kill pid这个进程的话,容易形成数据丢失。killall的话会等完成读写的时候,在杀死这个进程

因此,注意:当咱们在遇到当mysql的进程始终杀不死,等了一分钟尚未杀死,ps aux还会有进程,那说明数据量很大,正在写入到磁盘里去。这个时候不要轻易的用kill -9去杀进程,这样很是有可能丢数据,甚至损坏表

 

mysql有两个经常使用的引擎,innodb(比较大) myisam(比较小,存储空间都比较小) 本课只作了解

 

实例:

[root@axinlinux-01 ~]# uname -a

Linux axinlinux-01 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@axinlinux-01 ~]# cd /usr/local/src

[root@axinlinux-01 src]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

[root@axinlinux-01 src]# tar -zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

[root@axinlinux-01 src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql

[root@axinlinux-01 src]# cd /usr/local/mysql

[root@axinlinux-01 mysql]# ls

bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files

[root@axinlinux-01 mysql]# useradd mysql

[root@axinlinux-01 mysql]# mkdir /data/

[root@axinlinux-01 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 这个语言是perl脚本的,提示少了perl模块。因此咱们要安装。不知道名字,模糊搜索一下

也可去网站将这个提示搜索一下,www.google.com www.bing.com www.baidu.com

[root@axinlinux-01 mysql]# yum list | grep -i dumper 咱们先搜索一下,-i不分大小写。咱们若是不清楚究竟是依赖哪一个包,就全安装上

abi-dumper.noarch 1.1-3.el7 epel

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

php-symfony-var-dumper.noarch 2.8.12-2.el7 epel

vtable-dumper.x86_64 1.1-1.el7 epel

[root@axinlinux-01 mysql]# yum install -y perl-Data-Dumper 咱们知道,因此就安装这个了

阿鑫在执行那个命令的时候,还提示了Installing MySQL system tables...2018-07-27 23:01:12 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).百度后 安装了libaio*,就解决了(万能的百度)

[root@axinlinux-01 mysql]# yum install libaio* -y

[root@axinlinux-01 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

那咱们怎么知道有没有成功呢。查看有没有两个 OK。或者直接 echo $? 是否是0

[root@axinlinux-01 mysql]# echo $? 务必在执行完上一条命令以后立刻作。这个命令是检验上一条步骤是否是对的

0

[root@axinlinux-01 mysql]# cp support-files/my-default.cnf /etc/my.cnf

[root@axinlinux-01 mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@axinlinux-01 mysql]# vi /etc/init.d/mysqld

basedir=/usr/local/mysql 找到这两个,加上咱们以前设置的路径

datadir=/data/mysql

[root@axinlinux-01 mysql]# ls -l !$ 把它chmod成755,固然默认就是755

ls -l /etc/init.d/mysqld

-rwxr-xr-x 1 root root 10592 7月 27 23:21 /etc/init.d/mysqld

[root@axinlinux-01 mysql]# chkconfig --add mysqld 可让他开机启动

[root@axinlinux-01 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@axinlinux-01 mysql]# service mysqld start 能够把它启动起来

Starting MySQL SUCCESS! SUCCESS说明启动成功

[root@axinlinux-01 mysql]# 180727 23:28:20 mysqld_safe A mysqld process already exists

^C

[root@axinlinux-01 mysql]# ps aux | grep mysql 看一下进程列表

root 2376 0.0 0.0 115432 1712 ? S 23:27 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/axinlinux-01.pid

mysql 2484 1.8 23.9 1302732 449784 ? Sl 23:27 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=axinlinux-01.err --pid-file=/data/mysql/axinlinux-01.pid

root 2626 0.0 0.0 112720 976 pts/0 R+ 23:28 0:00 grep --color=auto mysql

[root@axinlinux-01 mysql]# 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 997/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1225/master

tcp6 0 0 :::22 :::* LISTEN 997/sshd

tcp6 0 0 ::1:25 :::* LISTEN 1225/master

tcp6 0 0 :::3306 :::* LISTEN 2484/mysqld

相关文章
相关标签/搜索