博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
37.LAMP介绍 MySQL安装
阅读量:5808 次
发布时间:2019-06-18

本文共 6812 字,大约阅读时间需要 22 分钟。

hot3.png

11.1 LAMP架构介绍

11.2 MySQL、MariaDB介绍

11.3/11.4/11.5 MySQL安装

 

 

 

 

11.1 LAMP架构介绍

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

Linux指的是操作系统,例如centos

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

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

PHP是脚本语言。和shell类似但是比shell复杂。像C语言

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

~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

[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

转载于:https://my.oschina.net/u/3866149/blog/1885052

你可能感兴趣的文章
XML
查看>>
【我的总结20170823】多实例部署
查看>>
[MySQL优化案例]系列 — slave延迟很大优化方法
查看>>
线性表4 - 数据结构和算法09
查看>>
C语言数据类型char
查看>>
Python线程详解
查看>>
Online Patching--EBS R12.2最大的改进
查看>>
说说我的web前端之路,分享些前端的好书
查看>>
Binary Search Tree Iterator leetcode
查看>>
Oracle性能优化--DBMS_PROFILER
查看>>
关闭Jquery Ajax 缓存
查看>>
uva-317-找规律
查看>>
Event事件的兼容性(转)
查看>>
数论 - 同余 + BFS (Find The Multiple)
查看>>
CQRS学习——一个例子(其六)
查看>>
Hadoop 学习资料集锦
查看>>
12.22 repeater 添加
查看>>
leetcode-74-搜索二维矩阵
查看>>
Remote Desktop Issues
查看>>
IIS7内建账号,应用程序池
查看>>