LAMP介绍及安装MySQL

1. LAMP架构介绍

LAMP是Linux Apache MySQL PHP的简写,即把Apache、MySQL以及PHP安装在Linux系统上。组成一个环境来运行PHP的脚本语言,通常是网站。Apache是最常用的Web服务软件,MySQL是比较小型的数据库软件。

可以把Apache和PHP安装在一台机器上,而把MySQL安装在另外一台机器上,也可以把它们三个安装在同一台机器上,但是Apache和PHP必须要在同一台机器上,这是因为PHP是Apache的一个模块存在的,它们两个必须在一起,参见下图:

LAMP介绍及安装MySQL_第1张图片

静态请求:访问标准的静态网页,即HTML文件,可以包含文本、图片、声音、flash动画等;

动态请求:根据用户发出的不同请求,在数据库调取数据,为其提供个性化的网页。

2. MySQL和Mariadb

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。(注:摘自百度百科)

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。(注:摘自百度百科)

mariadb的5.5版本对应MySQL的5.5版本, 而mariadb的10.0版本对应MySQL的5.6版本。

常用的软件版本:

Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的;DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本。

3. 安装MySQL

安装MySQL一般有常见的这几种方法:rpm包、源码、免编译二进制包。

源码包都是可以更改的C或者C++语言编写的源码文件,而免编译的二进制包就是已经编译过的文件再打包后提供下载使用,目前常用的是5.6及以上版本。

根据安装的操作系统选择合适的版本进行下载,一般将其放在/usr/local/src目录下,这里我下载的是5.6版本的免编译二进制包;

[root@yuioplvlinux-128 ~]# cd /usr/local/src/
[root@yuioplvlinux-128 src]# ls
mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

使用命令“tar zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz ”解压;

请解压后的目录移动至/usr/local/mysql下;

[root@yuioplvlinux-128 src]# mv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql
[root@yuioplvlinux-128 src]# cd /usr/local/mysql/ 
[root@yuioplvlinux-128 mysql]# ls
bin  COPYING  data  docs  include  lib  man  mysql-test  README  scripts  share  sql-bench  support-files
[root@yuioplvlinux-128 mysql]# useradd mysql   #建立mysql用户

查看该目录下是否存在data目录,没有该目录需要去创建。

使用命令“yum install -y perl-Data-Dumper”安装perl-Data-Dumper包,否则会提示错误;

[root@yuioplvlinux-128 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql   #初始化
FATAL ERROR: The parent directory for the data directory '/data/mysql' does not exist.
If that path was really intended, please create that directory path and then
restart this script.
If some other path was intended, please use the correct path when restarting this script.

可以看到提示文件夹不存在,使用绝对路径即可;

[root@yuioplvlinux-128 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql

--user表示定义数据库的以哪个用户的身份在运行,--datddir表示定义数据库的安装目录;

若在执行时,提示如下内容:

[root@yuioplv mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/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*”即可。

执行结束后,使用“echo $?”查看是否执行成功,为0则表示成功,为1则表示失败;

[root@yuioplvlinux-128 mysql]# echo $?
0

复制配置文件,因为系统默认就要/etc/my.cnf,所以会提示是否覆盖;

[root@yuioplvlinux-128 mysql]# ls support-files/my-default.cnf
support-files/my-default.cnf
[root@yuioplvlinux-128 mysql]# cp support-files/my-default.cnf  /etc/my.cnf 
cp:是否覆盖"/etc/my.cnf"? y

编辑/etc/my.cnf,设置basedir和datadir;

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data/mysql
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

basedir是MySQL包所在的路径;datadir是定义的存放数据的地方,默认情况下,错误日志也会在这个目录下面;port定义MySQL服务监听的端口,默认为3306;server_id定义该MySQL服务的ID号,这个参数用于在做主从配置;socket定义MySQL服务监听的套接字地址。


复制启动脚本文件,同样的,设置basedir和datadir;

[root@yuioplvlinux-128 mysql]# ls
bin  COPYING  data  docs  include  lib  man  my.cnf  my-new.cnf  mysql-test  README  scripts  share  sql-bench  support-files
[root@yuioplvlinux-128 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@yuioplvlinux-128 mysql]# vim /etc/init.d/mysqld
[root@yuioplvlinux-128 mysql]# ll /etc/init.d/mysqld   #其权限为755
-rwxr-xr-x 1 root root 10608 5月  24 02:45 /etc/init.d/mysqld

把启动脚本加入系统服务项,并查看启动状态;

[root@yuioplvlinux-128 mysql]# chkconfig --add mysqld
[root@yuioplvlinux-128 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@yuioplvlinux-128 mysql]# service mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/mysql/yuioplvlinux-128.err'.
................ SUCCESS! 
[root@yuioplvlinux-128 mysql]# ps aux | grep mysqld
root      1180  0.0  0.1  11772  1592 pts/0    S    02:48   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data/mysql --pid-file=/usr/local/mysql/data/mysql/yuioplvlinux-128.pid
mysql     1315 10.4 44.6 1302680 449776 pts/0  Sl   02:48   0:15 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=yuioplvlinux-128.err --pid-file=/usr/local/mysql/data/mysql/yuioplvlinux-128.pid
root      1371  0.0  0.0 112676   984 pts/0    R+   02:50   0:00 grep --color=auto mysqld
[root@yuioplvlinux-128 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      770/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      853/master          
tcp6       0      0 :::22                   :::*                    LISTEN      770/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      853/master          
tcp6       0      0 :::3306                 :::*                    LISTEN      1315/mysqld    
也可以使用命令行的方式启动,如下:
/usr/local/mysql/bin/mysqld_safe --default-file=/etc/my.cnf --user=mysql --datadir=/usr/local/mysql/data/mysql/

关闭mysqld服务,使用kill命令,其中“killall mysqld”表示关闭所有的mysqld服务;

需要注意的是,kill -9(无条件终止)慎用,有可能将正在传输数据的服务关闭,从而造成数据丢失


你可能感兴趣的:(Linux,Linux)