11.1 LAMP架构介绍 11.2 MySQL_MariaDB介绍 11.3 MySQL安装(上)(中)(下)

11.1 LAMP架构介绍

LAMP包含了Apache(httpd)+MySQL+PHP
Apache:提供web服务的软件
MySQL:存储软件,存的是数据,一些字符串
PHP:脚本语言,类似shell,比shell复制的语言,通常用于做网站;由于移动网络的影响,PHP现在不怎么受欢迎
三个服务可以在同一个机器上,也可以分开,但(httpd和PHP必须在一起)
PHP是以一个模块的形式和Apache结合在一起的,Apache不能直接和MySQL通信,只能通过PHP的模块去MySQL里调取数据
PHP和MySQL交互数据的这个动作,称为动态请求
用户登录:

  1. Apache确认用户行为→静态→访问网站过程的图片、logo之类的都是静态文件
  2. Apache确认用户行为→动态→PHP与MySQL进行数据对比

11.2 MySQL_MariaDB介绍

MySQL 是一个关系型数据库,有MySQL ad公司开发,08年被sun公司以10亿美元收购,09年被oracle公司以74亿美金收购
oracle 常用于银行,金融企业,通常装于小型机上,小型机系统是Unix系统,这个系统是收费的。
MySQL最新版为 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.3 MySQL安装(上)(中)(下)

rpm包,开源直接yum安装,不能定义安装路径
源码包,make 安装
二进制免编译,编译之后的文件重新排布打包压缩,减少编译配置时间,因为是在其他的机器上编译的,可能性能上会有些差异,达不到极致
如果没有特殊要求,可以使用二进制包安装,二进制包是区分平台
uname -a 查看平台类型。是32位还是64位

  • 下载

下载的时候,需要主要,你要下载到那个目录,需要cd 到那个目录下。。
做LANP环境的时候,会需要下很多的源码包
默认规则,源码包,统一放在 /usr/local/src/ 路径下
使用wget下载5.6,64位的包

wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@localhost src]# ls
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

下载完成后,解压缩

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

解压完成后,更改目录名字,并移动到规则内的目录下

[root@localhost src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
[root@localhost src]# cd ..
[root@localhost local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src
[root@localhost local]# cd mysql/
[root@localhost mysql]# pwd
/usr/local/mysql

创建一个MySQL的用户

useradd mysql

创建存放MySQL数据的目录

mkdir /data/
  • 初始化

初始化,实际上就是生产一个/data/mysql的目录,因为MySQL要想启动,必须要有一个自带的库,自带的库的名字就叫mysql

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

理解为,指定mysql用户,指定用户的数据存放目录
但是运行提示错误:

[root@localhost 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

解决思路,出现提示,一般都是缺少什么包,或者是什么模块,安装就好,根据提示进行安装
但是不知道缺少的包是什么,就只能进行模糊搜索

yum list |grep perl |grep -i dumper 

并不一定能查到正确答案,可以去网站搜索一下正确资料
正确缺少的包是 perl-Data-Dumper.x86_64
安装好之后重新执行

[root@localhost 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

到百度搜索之后,说是缺少libaio

yum install -y libaio

安装后重新执行

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

发现能顺利执行,结束后,查看是否安装成功,看运行过程中是否提示2个“OK”
使用echo $? 查看运行过程是否出错 ,echo $? ==只会对前一步动作进行查看是否有错误==。

[root@localhost mysql]# echo $?
0

并没有错误

  • 拷贝配置文件和启动脚本

配置文件模板,存放在 mysql安装目录

support-files/my-default.cnf

MySQL的配置文件就叫my.cnf,想要MySQL正常运行,名字必须正确,而且固定放在/etc/ 下,如果想放在其他目录下,需要做一个启动的指定
将文件拷贝到 /etc/my.cnf
centos7 系统默认就有一个 my.cnf

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf 指定配置文件所在的路径
[root@localhost mysql]# ls /etc/my.cnf
/etc/my.cnf

由 mariadb 安装过来的

[root@localhost mysql]# rpm -qf /etc/my.cnf
mariadb-libs-5.5.52-1.el7.x86_64

既然默认就有配置文件,可以就用这个配置文件,只不过需要改一些配置,改动如下。

[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
# 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
  • 启动脚本

拷贝启动脚本

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

编辑启动脚本

vim /etc/init.d/mysqld

只需要调整以下部分就可以了

basedir=/usr/local/mysql
datadir=/data/mysql

调整启动脚本的权限 为755,不过貌似默认就是755权限
需要启动脚本为开机启动,需要将脚本加入到系统启动服务里面去

chkconfig --add mysqld

查看mysqld 是否加到启动服务里面

chkconfig --list
[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:关

同样的,可以直接使用命令 直接启动服务,两种启动方式,总有你喜欢的一款。

/etc/init.d/mysqld statr  
service mysqld start
[root@localhost mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
. SUCCESS!

SUCCESS说明启动成功了
如果不放心,还可以继续看看进程

ps aux |grep mysqld 
[root@localhost mysql]# ps aux |grep mysqld
root      2869  0.0  0.0  11764  1596 pts/0    S    01:16   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql     3004  1.0 23.9 973056 449524 pts/0   Sl   01:16   0:00 /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.pid --socket=/tmp/mysql.sock
root      3030  0.0  0.0 112664   972 pts/0    R+   01:17   0:00 grep --color=auto mysqld

看看监听的端口

[root@localhost 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      1006/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1543/master
tcp6       0      0 :::3306                 :::*                    LISTEN      3004/mysqld
tcp6       0      0 :::22                   :::*                    LISTEN      1006/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1543/master

如果,没有把启动脚本放在/etc/init.d/下或者是没有相关的启动脚本,可以以命令行的方式去进行启动

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

关闭msyql服务

/etc/init.d/mysqld stop 正常关闭办法

如果是命令行方式运行的,只能杀死进程

killall mysqld

killall 命令并不会直接杀死进程,会先停止进程的其他的操作,然后让进程把手头上的工作再做完,然后再杀死。
所以一旦使用了killall 可能会因为数据量大,等待的时间会比较长一些,如果这时候使用kill -9 强制杀死 mysql 很容易丢失数据和表。

转载于:https://my.oschina.net/nova12315/blog/1661825

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值