初识LAMP
LAMP是工作中常用的web部署架构之一。它由linux、apache(httpd)、mysql和php组成。其各个部件之间运作的关系如下图所示:
用户通过游览器访问服务端的apache(httpd)服务,如果访问的是静态数据,就直接提取。如果访问的数据来自mysql,那么就需要调用php模块与mysql建立关系读取数据。
Mysql与Mariadb
Mysql是一个关系型数据库,由mysql ab公司开发,在2008年被sun公司收购,2009年被oracle公司收购。mysql最新版本是5.7GA/8.0DMR。mysql 5.6版本变化比较大,5.7版本性能上有很大提升。
Mariadb是mysql的一个分支,最新版本是10.2版本。它是由Mysql原作者带领大部分原班人马创立的SkySQL公司维护。
Mariadb5.5版本对应MySQL的5.5版本,10.0版本对应MySQL的5.6版本。
Tips: Community 社区版本,Enterprise 企业版, GA(Generally Available)指通用版本,在生产环境中用的, DMR(Development Milestone Release)开发里程碑发布版, RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本。
安装Mysql
Mysql的安装方式主要有3种,分别为rpm、源码和二进制免编。译一般我们平时安装MySQL都是源码包安装的,但是由于它的编译需要很长的时间,建议安装二进制免编译包。可以到MySQL官方网站去下载,也可以其他镜像网站下载。
1、下载安装文件
[root@juispan ~]# cd /usr/local/src [root@juispan src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz --2017-07-21 06:40:22-- http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 正在解析主机 mirrors.sohu.com (mirrors.sohu.com)... 221.236.12.140 正在连接 mirrors.sohu.com (mirrors.sohu.com)|221.236.12.140|:80... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:314581668 (300M) [application/octet-stream] 正在保存至: “mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz” 100%[======================================>] 314,581,668 555KB/s 用时 9m 36s 2017-07-21 06:49:59 (533 KB/s) - 已保存 “mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz” [314581668/314581668])
2、解压并移动
[root@juispan src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64/README mysql-5.6.35-linux-glibc2.5-x86_64/data/test/db.opt mysql-5.6.35-linux-glibc2.5-x86_64/lib/libmysqlclient.a ...... [root@juispan src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
3、创建用户与文件夹
[root@juispan local]# cd mysql/ [root@juispan mysql]# ls bin data include man README share support-files COPYING docs lib mysql-test scripts sql-bench [root@juispan mysql]# useradd mysql [root@juispan mysql]# mkdir /data/
4、初始化数据库
[root@juispan 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-Data-Dumper,使用yum安装上,重新初始化。
[root@juispan mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/my sql Installing MySQL system tables..../bin/mysqld: error while loading shared librar ies: libaio.so.1: cannot open shared object file: No such file or directory
运行出错,安装libaio和libaio-dev相关的包,重新初始化。
[root@juispan mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql Installing MySQL system tables...2017-07-21 07:17:04 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-07-21 07:17:04 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap. 2017-07-21 07:17:04 0 [Note] ./bin/mysqld (mysqld 5.6.35) starting as process 9822 ... 2017-07-21 07:17:04 9822 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-07-21 07:17:04 9822 [Note] InnoDB: The InnoDB memory heap is disabled 2017-07-21 07:17:04 9822 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-07-21 07:17:04 9822 [Note] InnoDB: Memory barrier is not used ...... [root@juispan mysql]# echo $? 0
通过查看运行过程中如果有2个“OK”,或者结束后使用“echo $?”命令查看为0,均表示运行正常。
5、拷贝配置文件
[root@juispan mysql]# cp support-files/my-default.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y [root@juispan mysql]# vi /etc/my.cnf ...... datadir =/data/mysql socket =/tmp/mysql.sock ......
6、拷贝启动脚本文件
[root@juispan mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@juispan mysql]# vi /etc/init.d/mysqld ...... basedir=/usr/local/mysql datadir=/data/mysql ......
7、启动Mysql
[root@juispan mysql]# chkconfig --add mysqld [root@juispan mysql]# chkconfig --list | grep mysqld 注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 如果您想列出 systemd 服务,请执行 ‘systemctl list-unit-files‘。 欲查看对特定 target 启用的服务请执行 ‘systemctl list-dependencies [target]‘。 mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关 [root@juispan mysql]# service mysqld start Starting MySQL.Logging to ‘/data/mysql/juispan.err‘. .. SUCCESS! [root@juispan mysql]# netstat -lnpt 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 1096/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1753/master tcp6 0 0 :::3306 :::* LISTEN 10111/mysqld tcp6 0 0 :::22 :::* LISTEN 1096/sshd tcp6 0 0 ::1:25 :::* LISTEN 1753/master
如果要关闭mysqld服务,可以采用killall mysqld或kill <pid>命令。
如果mysql进程杀不死,说明正在处理的数据量大,如果强行kill会丢数据或损坏表。只能慢慢等待。
本文出自 “A man & A computer” 博客,请务必保留此出处http://juispan.blog.51cto.com/943137/1950956
原文:http://juispan.blog.51cto.com/943137/1950956