1. LAMP架构介绍MySQL安装

[toc]
LAMP架构介绍MySQL安装 一、 LAMP架构介绍 1.Linux+(httpd)+MySQL+PHP
是最常用的web服务软件 , 而MYSQL是比较小型的数据库软件 , 这两个软件及PHP都可以安装到机器上
1.1 常用的PHP网站(、淘宝、百度、51cto博客、猿课论坛)
扩展:
什么是脚本语言? , 为什么php语言是脚本语言
问:1、脚本语言和编程语言和html是不是计算机语言的主要的分类?区别在什么地方?关键是php是脚本语言这个怎么理解?——因为我才刚开始学php语言 , 所以请大侠们说得尽量通俗易懂些 。
2、我要做功能比较全的网站 , 用的是自主建站系统 , 但是是不是最好也学点php语言?
答1:编程语言一般用来编写应用程序 , 像C , C++ , VB , DEPHI , JAVA等 , 功能强大 , 学习难度也较大 。
脚本语言一般用来编写一些简单的应用 , 像JS , VBS , JSP , ASP , PHP等 , 宏程序也可以算是脚本语言 。脚本语言比起编程语言来说最大的缺点是执行效率低 , 但编写要容易点 。
HTML不算是语言 , 虽然它叫超文本标记语言 , 其实只能算是一些控制标记 , 写出来的也不称为程序 。
静态网页中也可以有VBS或JS脚本 , 它们只是前台的 。
ASP中既可以用VBS也可以JS , 只不过通常大部分人用VBS罢了 , 它们是后台的 。
PHP与C语法几乎相同 , 其实与JS也几乎相同 , 都很接近
你要做网站要学习ASP(有点落后了 , 不过入门较容易)或PHP或JSP或(可以学也可以学C#.net)中的至少一样 。
免费的整站系统可以免费使用修改 , 但大多不允许商业使用 , 你可以去相应的官方网站查看授权文件 。
答二:c;c++;perl;vb;汇编等等这些属于编程语言
脚本语言主要是我们常见的asp;php等
asp从属于vb,是vb的一个子集
php是使用c开发的
不管是asp还是php都是需要服务器解析执行,但是html和他们是不同的,html不需要服务器解析执行,他只需要直接输出就行了,所以我们叫html是超文本.
如果你使用的自助建站系统是php开发的,那么倘若你想开发复杂的网站你最好学一下PHP,这样你就可以改写建站系统的核心,但是如果你只用它来做普通的企业站,php你学不学都没关系.
1.2 三个角色可以在一台机器、也可以分开(httpd和PHP要在一起)???和PHP需要安装到同一台机器上 , 因为PHP是作为的一个模块存在的 , 两个必须在一起 2.httpd、PHP、MySQL三者如何工作
MySQL存储用户名;密码和数据、图片之类的放在静态文件里
11.2 介绍
MySQL是一个关系型数据库 , 由mysql ab公司开发 , mysql在2008年被sun公司收购(10亿刀) , 2009年sun公司被公司收购(74亿刀)
MySQL官网 最新版本5.7GA/8.0DMR
.6变化比较大 , 5.7性能上有很大提升
为MySQL的一个分支 , 官网最新版本10.2
主要由公司(现更名为公司)维护,公司由MySQL原作者带领大部分原班人马创立.
.5版本对应MySQL的5.5 , 10.0对应.6
社区版本 ,  企业版 , GA( )指通用版本 , 在生产环境中用的 , DMR()开发里程碑发布版 , RC( )发行候选版本 , Beta开放测试版本 , Alpha内部测试版本
11.4 MySQL安装 1.下载MySQL软件包 1.1查看系统版本:uname -i
[root@localhost src]# uname -ix86_64
1.2 下载源码包前指定一个通用目录 , 该目录保存所有软件包
什么是源码包:源码包都是可以更改的C或者C++语言编写的源码文件 , 而免编译的二进制包就是已经编译过的文件再打包后提供给我们.比如上安装的QQ,360都是这种安装包.

1. LAMP架构介绍MySQL安装

文章插图
[root@localhost ~]# cd /usr/local/src[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
2.初始化 2.1 加压软件包
[root@localhost src]#tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
2.2 挪动位置将解压文件放在/usr/local/mysql/目录下
[root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
扩展:更新mysql软件版本的情况
# [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old
类似一条if判断 , 意思是如果/usr/local/mysql目录存在 , 就改一下名字 , 以免影响后面的操作 , 如果不更改原有的路径名称 , 新安装的mysql步骤会失败
2.3 检查/usr/local/mysql/目录是否正确 , 有无多余的文件 , 避免误操作
[root@localhost src]# cd /usr/local/mysql/[root@localhost mysql]# lsbinCOPYINGdatadocsincludelibmanmysql-testREADMEscriptssharesql-benchsupport-files
2.4 创建mysql用户 , 因为启动MySQL需要该用户
[root@localhost mysql]# useradd mysql
在书中的创建方式为:#-s /sbin/ mysql
2.5 创建/data/目录并更改权限 , 用于存放mysql的数据文件,为下一步的准备
[root@localhost mysql]# mkdir /data/# chown -R mysql:mysql /data/mysql //给/data/mysql这个文件夹服务mysql用户的执行权限
2.6 初始化mysql:.// --user=mysql --=/data/mysql
--user 定义数据库的所属主 ,  -- 定义数据库安装到哪里 , 建议放到大空间的分区上 , 这个目录需要自行创建 。
初始化的时候 , 可能回出现如下问题:
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysqlFATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper
2.7如何判断确实安装包或模块:缺少Perl模块 , 缺少的支持 yum list | grep perl | grep -i
那么怎么解决呢?
使用模糊搜索 , 过滤关键来尝试解决:
[root@localhost mysql]# yum list | grep perl | grep -i dumperperl-Data-Dumper.x86_642.145-3.el7baseperl-Data-Dumper-Concise.noarch2.020-6.el7epelperl-Data-Dumper-Names.noarch0.03-17.el7epelperl-XML-Dumper.noarch0.81-17.el7base
搜索完成后出现以上四个安装包 , 无法确定需要哪个安装包的时候 , 可以尝试每个安装包都试下 。
[root@localhost mysql]# yum install -y perl-Data-Dumper.x86_64
2.8 找到安装包 , 重新初始化mysql
执行:
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
第一种 , 看到两个OK , 确认下
第二种 , 执行 echo $? , 查看上一条命令是否有问题
[root@localhost mysql]# echo $?0
3. 配置MySQL 3.1 首先复制配置文件f
[root@xavi mysql]# ls support-files/my-default.cnfsupport-files/my-default.cnf[root@xavi mysql]# cp support-files/my-default.cnf /etc/my.cnf
编辑配置文件f,定义MySQL服务监听的套接字地址 , 在Linux系统下面 , 很多服务不仅可以监听一个端口(通过TCP/IP的方式通信) , 也可以监听 , 两个进程就可以通过这个文件通信. 延伸阅读:
络上的两个程序通过一个双向的通信连接实现数据的交换 , 这个连接的一端称为一个 。
建立网络通信连接至少要一对端口号() 。本质是编程接口(API) , 对TCP/IP的封装 , TCP/IP也要提供可供程序员做网络开发所用的接口 , 这就是编程接口;HTTP是轿车 , 提供了封装或者显示数据的具体形式;是发动机 , 提供了网络通信的能力 。
的英文原义是“孔”或“插座” 。作为BSD UNIX的进程通信机制 , 取后一种意思 。通常也称作"套接字" , 用于描述IP地址和端口 , 是一个通信链的句柄 , 可以用来实现不同虚拟机或不同计算机之间的通信 。在上的主机一般运行了多个服务软件 , 同时提供几种服务 。每种服务都打开一个 , 并绑定到一个端口上 , 不同的端口对应于不同的服务 。正如其英文原义那样 , 像一个多孔插座 。一台主机犹如布满各种插座的房间 , 每个插座有一个编号 , 有的插座提供220伏交流电 ,  有的提供110伏交流电 , 有的则提供有线电视节目 。客户软件将插头插到不同编号的插座 , 就可以得到不同的服务 。
vim编辑f,修改 , 路径
# *** upgrade to a newer version of MySQL.[mysqld]datadir=/data/mysqlsocket=/tmp/mysql.socksymbolic-links=0# Remove leading # and set to the amount of RAM for the most important data
rpm -qf查询某文件来自哪安装包
[root@xavi mysql]# ls /etc/my.cnf/etc/my.cnf[root@xavi mysql]# rpm -qf /etc/my.cnfmariadb-libs-5.5.52-1.el7.x86_64
3.2 为了在启动项中完成mysql配置 , 需要将mysql.脚本 放到/etc/init.d/目录下 , 并编辑修改
[root@localhost mysql]# ls support-files/binary-configuremagicmy-default.cnfmysqld_multi.servermysql-log-rotatemysql.server[root@localhost mysql]#cp support-files/mysql.server /etc/init.d/mysqld
3.3 修改脚本权限和属性:chmod 755 /etc/init.d/
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld[root@localhost mysql]# ls -l /etc/init.d/mysqld-rwxr-xr-x 1 root root 10594 2月28 11:41 /etc/init.d/mysqld
3.4 编辑复制后的脚本文件vim /etc/init.d/
增加以下两句:
=/usr/local/mysql//MySQL包所在路径
=/data/mysql //定义数据存放的地方
定义路径是不要留空格会报错 。
3.4 用把mysql添加到开机启动项中 , 设定开机启动并启动mysql
[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]' 。mysqld0:关 1:关 2:开 3:开 4:开 5:开 6:关netconsole0:关 1:关 2:关 3:关 4:关 5:关 6:关network0:关 1:关 2:开 3:关 4:关 5:关 6:关[root@localhost mysql]# chkconfig --add mysqld//把mysqld服务加入到系统服务列表中[root@localhost mysql]# chkconfig mysqld on//开机启动mysqld[root@localhost mysql]# service mysqld start//启动mysqldStarting MySQL.Logging to '/data/mysql/zlinux.err'.. SUCCESS!
如果启动不了 , 请到 /data/mysql/ 下查看错误日志 , 这个日志通常是主机名.err. 。
检查mysql是否启动的命令为:
[root@localhost mysql]# ps aux |grep mysqlroot55050.00.0117761568 pts/0S11:460:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pidmysql56120.1 24.8 1302876 464396 pts/0Sl11:460:04 /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.pidroot65270.00.0 112676976 pts/0S+12:470:00 grep --color=auto mysql
3.5查看监听端口: -lntp , 有没有3306端口
[root@localhost mysql]# netstat -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local AddressForeign AddressStatePID/Program nametcp00 0.0.0.0:1110.0.0.0:*LISTEN1/systemdtcp00 192.168.122.1:530.0.0.0:*LISTEN1744/dnsmasqtcp00 0.0.0.0:220.0.0.0:*LISTEN1069/sshdtcp00 127.0.0.1:6310.0.0.0:*LISTEN1067/cupsdtcp00 127.0.0.1:250.0.0.0:*LISTEN1580/mastertcp600 :::3306:::*LISTEN5612/mysqldtcp600 :::111:::*LISTEN1/systemdtcp600 :::22:::*LISTEN1069/sshdtcp600 ::1:631:::*LISTEN1067/cupsdtcp600 ::1:25:::*LISTEN1580
4.用命令行的形式启动mysql , ---file=/etc/f --user=mysql --=/data/mysql &//指定文件路径 , 添加命令 , 用&转到后台运行
/usr/local/mysql/bin/ ---file=/etc/f --user=mysql --=/data/mysql &
[root@localhost mysql]# service mysqld stopShutting down MySQL.. SUCCESS! [root@localhost mysql]# !psps aux |grep mysqlroot66530.00.0 112676972 pts/0S+12:550:00 grep --color=auto mysql[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &[1] 6683[root@localhost mysql]# 180228 12:58:11 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'.180228 12:58:11 mysqld_safe Starting mysqld daemon with databases from /data/mysql^C
ps查看是否启动
[root@localhost mysql]# !psps aux |grep mysqlroot66830.00.0 1132641596 pts/0S12:580:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysqlmysql67781.0 24.4 1302876 455756 pts/0Sl12:580: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.pidroot68090.00.0 112676976 pts/0S+12:580:00 grep --color=auto mysql
查看端口
[root@localhost mysql]# !netnetstat -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local AddressForeign AddressStatePID/Program nametcp00 0.0.0.0:1110.0.0.0:*LISTEN1/systemdtcp00 192.168.122.1:530.0.0.0:*LISTEN1744/dnsmasqtcp00 0.0.0.0:220.0.0.0:*LISTEN1069/sshdtcp00 127.0.0.1:6310.0.0.0:*LISTEN1067/cupsdtcp00 127.0.0.1:250.0.0.0:*LISTEN1580/mastertcp600 :::3306:::*LISTEN6778/mysqldtcp600 :::111:::*LISTEN1/systemdtcp600 :::22:::*LISTEN1069/sshdtcp600 ::1:631:::*LISTEN1067/cupsdtcp600 ::1:25:::*LISTEN1580/master
4.kill命令
必须以命令杀掉进程 , 比较安全 。
命令会先把程序执行完毕 , 才杀掉进程 。
如果等了很久都没有杀死 , 说明数据量很大 , 需要写到磁盘中完毕后 , 慢慢杀死;
如果强制杀死kill+PID , 可能导致数据丢失或表的损坏 。
4.1上述一命令行形式来启动的mysql , 没法用stop来关闭 , 只能用命令 4.2 这里还是建议开启和关闭mysql使用的方法是
start
stop
[root@localhost mysql]# killall mysqld[root@localhost mysql]# 180228 13:05:00 mysqld_safe mysqld from pid file /data/mysql/localhost.localdomain.pid ended^C[1]+完成/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql[root@localhost mysql]# !psps aux |grep mysqlroot69410.00.0 112676976 pts/0S+13:060:00 grep --color=auto mysql
【1. LAMP架构介绍MySQL安装】kill-9 +PID的方法不可取 , 容易丢数据或表格 4.2 mysql的引擎和面试前讲解??