千家信息网

1. LAMP架构介绍MySQL安装

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,[toc]LAMP架构介绍MySQL安装一、 LAMP架构介绍1.Linux+Apache(httpd)+MySQL+PHPAppache是最常用的web服务软件,而MYSQL是比较小型的数据库软件,
千家信息网最后更新 2026年10月31日1. LAMP架构介绍MySQL安装

[toc]

LAMP架构介绍MySQL安装

一、 LAMP架构介绍

1.Linux+Apache(httpd)+MySQL+PHP

Appache是最常用的web服务软件,而MYSQL是比较小型的数据库软件,这两个软件及PHP都可以安装到windows机器上

1.1 常用的PHP网站(Google、淘宝、百度、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或ASP.net(可以学VB.net也可以学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要在一起)???Apache和PHP需要安装到同一台机器上,因为PHP是作为Apache的一个模块存在的,两个必须在一起

2.httpd、PHP、MySQL三者如何工作


MySQL存储用户名;密码和数据、图片之类的放在静态文件里

11.2 MySQL_MariaDB介绍

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

11.4 MySQL安装

1.下载MySQL软件包

1.1查看系统版本:uname -i
[root@localhost src]# uname -ix86_64
1.2 下载源码包前指定一个通用目录,该目录保存所有软件包

什么是源码包:源码包都是可以更改的C或者C++语言编写的源码文件,而免编译的二进制包就是已经编译过的文件再打包后提供给我们.比如windows上安装的QQ,360都是这种安装包.

[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]# lsbin  COPYING  data  docs  include  lib  man  mysql-test  README  scripts  share  sql-bench  support-files
2.4 创建mysql用户,因为启动MySQL需要该用户
[root@localhost mysql]# useradd mysql

在书中的创建方式为:# useradd -s /sbin/nologin mysql

2.5 创建/data/目录并更改权限,用于存放mysql的数据文件,为下一步的datadir准备
[root@localhost mysql]# mkdir /data/# chown -R mysql:mysql /data/mysql //给/data/mysql这个文件夹服务mysql用户的执行权限
2.6 初始化mysql:./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

--user 定义数据库的所属主, --datadir 定义数据库安装到哪里,建议放到大空间的分区上,这个目录需要自行创建。
初始化的时候,可能回出现如下问题:

[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模块,缺少Dumper的支持
yum list | grep perl | grep -i dumper

那么怎么解决呢?
使用模糊搜索,过滤关键来尝试解决:

[root@localhost mysql]# yum list | grep perl | grep -i dumperperl-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     

搜索完成后出现以上四个安装包,无法确定需要哪个安装包的时候,可以尝试每个安装包都试下。

[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 首先复制配置文件my-default.cnf
[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
编辑配置文件my.cnf,socket定义MySQL服务监听的套接字地址,在Linux系统下面,很多服务不仅可以监听一个端口(通过TCP/IP的方式通信),也可以监听socket,两个进程就可以通过这个socket文件通信.
延伸阅读:socket

络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
Socket的英文原义是"孔"或"插座"。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原义那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。

vim编辑my.cnf,修改datadir,socket路径
# *** 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.server脚本 放到/etc/init.d/mysqld目录下,并编辑修改
[root@localhost mysql]# ls support-files/binary-configure  magic  my-default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server[root@localhost mysql]#  cp support-files/mysql.server /etc/init.d/mysqld
3.3 修改脚本权限和属性:chmod 755 /etc/init.d/mysqld
[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/mysqld

增加以下两句:

basedir=/usr/local/mysql//MySQL包所在路径

datadir=/data/mysql //定义数据存放的地方


定义路径是不要留空格会报错。

3.4 用chkconfig把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]'。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@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 mysqlroot       5505  0.0  0.0  11776  1568 pts/0    S    11:46   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pidmysql      5612  0.1 24.8 1302876 464396 pts/0  Sl   11:46   0: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.pidroot       6527  0.0  0.0 112676   976 pts/0    S+   12:47   0:00 grep --color=auto mysql
3.5查看监听端口:netstat -lntp,有没有3306端口
[root@localhost mysql]# netstat -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1744/dnsmasq        tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1069/sshd           tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1067/cupsd          tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1580/master         tcp6       0      0 :::3306                 :::*                    LISTEN      5612/mysqld         tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           tcp6       0      0 :::22                   :::*                    LISTEN      1069/sshd           tcp6       0      0 ::1:631                 :::*                    LISTEN      1067/cupsd          tcp6       0      0 ::1:25                  :::*                    LISTEN      1580

4.用命令行的形式启动mysql,--defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &//指定文件路径,添加命令,用&转到后台运行

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

[root@localhost mysql]# service mysqld stopShutting down MySQL.. SUCCESS! [root@localhost mysql]# !psps aux |grep mysqlroot       6653  0.0  0.0 112676   972 pts/0    S+   12:55   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 &[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 mysqlroot       6683  0.0  0.0 113264  1596 pts/0    S    12:58   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysqlmysql      6778  1.0 24.4 1302876 455756 pts/0  Sl   12:58   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.pidroot       6809  0.0  0.0 112676   976 pts/0    S+   12:58   0:00 grep --color=auto mysql

查看端口

[root@localhost mysql]# !netnetstat -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1744/dnsmasq        tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1069/sshd           tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1067/cupsd          tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1580/master         tcp6       0      0 :::3306                 :::*                    LISTEN      6778/mysqld         tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           tcp6       0      0 :::22                   :::*                    LISTEN      1069/sshd           tcp6       0      0 ::1:631                 :::*                    LISTEN      1067/cupsd          tcp6       0      0 ::1:25                  :::*                    LISTEN      1580/master     

4.kill命令

必须以killall命令杀掉进程,比较安全。
killall 命令会先把程序执行完毕,才杀掉进程。
如果killall等了很久都没有杀死,说明数据量很大,需要写到磁盘中完毕后,慢慢杀死;
如果强制杀死kill+PID,可能导致数据丢失或表的损坏。

4.1上述一命令行形式来启动的mysql,没法用service mysqld stop来关闭,只能用killall命令
4.2 这里还是建议开启和关闭mysql使用的方法是

service mysqld start
service mysqld 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 mysqlroot       6941  0.0  0.0 112676   976 pts/0    S+   13:06   0:00 grep --color=auto mysql
kill-9 +PID的方法不可取,容易丢数据或表格
4.2 mysql的引擎innodb和 myisam 面试前讲解??
语言 服务 文件 数据 脚本 版本 软件 命令 目录 通信 不同 公司 端口 系统 插座 程序 开发 编程 配置 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 广州百单互联网科技有限公司 互联网科技logo 上游互联网科技 互联网科技生活的内容 济南和联互联网科技有限公司 宁波青枫互联网科技有限公司 团飞科技与伯堂互联网服务平台 语蝶互联网科技有限公司 杭州壁岐互联网科技有限公司 速维有品互联网信息科技(苏州)有限公司 呼和浩特新华互联网科技学院 乌苏新华互联网科技做什么的 996高科技互联网公司 合肥互联网科技公司公章图片 上海科技产业互联网平台 山东子淼互联网科技有限公司 张召忠谈中国互联网科技 工业互联网科技成果转化 六子台科技互联网展会 中国互联网科技工作委员会毛军 深圳艾佳互联网科技 四川狮子座互联网科技 互联网金融科技委员会 海南科技产业互联网平台 上海电发互联网科技有限公司 迪庆互联网科技招生 华夏恒生科技与互联网科技 长沙互联网科技 半导体是互联网高科技吗
0