LAMP是Linux+Apache(httpd)+MySQL+PHP的组合php
其中Apache指的是提供web服务的一个软件httpdhtml
MySQL是数据存储软件java
php是脚本开发语言,主要用于开发网站,常见的php网站有Google、淘宝、百度、51cto博客mysql
Apache(httpd)+MySQL+PHP三个角色能够在一台机器,也能够分开,可是httpd和PHP要在一块儿linux
httpd、PHP、MySQL三者工做原理:web
PHP是以一个模块的形式和apache结合在一块儿的sql
Apache不能直接和MySQL打交道,必需要经过PHP模块来通讯,这种行为叫作动态请求,动态请求用于加载动态的数据数据库
sun公司是作java的,JDK就是sun公司开发的apache
oracle公司有oracle数据库,这种数据库比较大型,像银行、金融等大企业都须要用oracle,oracle一般会装在一个小型机上(安装的是收费的UNIX操做系统),这种小型机可能有几百颗cup,几个T的硬盘;oracle数据库是收费的服务器
rpm包就是经过yum安装,只能安装在usr下
二进制免编译包是将在其余服务器上编译配置好了的包拿过来用,相对rpm包优点是能够任意选择本身想要安装的位置;咱们默认就使用这种包
# cd /usr/local/src
# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql/
# useradd mysql
# mkdir /data/
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
运行上述命令时出现如下错误:
此时须要安装带有perl模块且名字包含dumper的软件,能够用grep过滤安装包名字来搜索
也能够在搜索网站如百度、谷歌、必应搜索,可使用搜索镜像网站提供的连接:
https://coderschool.cn/1853.html
安装好后再来测试初始化是否正确,正确的标准是:出现了两个OK,或者使用命令# echo $? 若是执行此命令返回的结果是0则说明执行正确
mysql配置文件模板是mysql/support-files/my-default.cnf,默认的配置文件路径及名称是/etc/my.cnf 若是使用其余路径或名称须要在启动时指定
# vi support-files/my-default.cnf
# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
上图中能够看到系统中已有my.cnf文件,此时也能够经过修改这个原来的文件实现,修改后的文件内容以下图
将下图中路径中的# support-files/mysql.server脚本文件拷贝到mysql指定的启动目录下并更名/etc/init.d/mysqld
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
拷贝后再来修改文件中的部份内容:
修改MySQL程序目录为basedir=/usr/local/mysql
数据目录为datadir=/data/mysql
修改mysqld文件权限为755
a.开机启动
增长到系统启动服务列表中去,使mysqld开机启动# chkconfig --add mysqld
b.手工启动mysqld服务
# service mysqld start 或 # /etc/init.d/mysqld start
启动成功会提示SUCCESS!
查看mysqld脚本启动成功后的进程# ps aux |grep mysql 以下图:
查看mysqld启动成功后的端口状态# netstat -lntp
从上图能够看到数据库的端口3306已经成功开启
c.命令行启动--适用于没有启动脚本模板或者启动脚本打不开的状况
使用命令行的方式启动mysqld服务
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir= /data/mysql & //命令中的defaults-file是设置默认配置文件的启动位置和名称,datadir是能够在my.cnf中定义的,&将进程调到后台执行
关闭mysqld服务的方式也能够是:# killall mysqld
注意:# kill pid号 //使用这种方式杀死进程时有可能形成数据丢失,因进程在不停地读写数据,当某些写入的数据还停留在内存中,还没有来得及保存到磁盘中时,这时候将这个进程杀死就意味着内存中的这些数据丢失了;使用killall的话会先中止进程的读写操做,而后将内存中的待写入的数据写入到磁盘中,最后才杀死进程,从这种状况出发,若是未来遇到使用killall 杀死mysqld的进程始终杀不死,等了1分钟仍是杀不死,ps还会有进程,那说明进程数据量很大,它正在慢慢地写入到磁盘中,这时候不要强制地用kill -9去杀死进程,这样的话很是有可能丢数据或者损害表,这种状况就只能等待,尤为是数据有几百个G或者引擎用的是innodb的引擎(mysql有两个经常使用的引擎innodb 和myisam,其中myisam比较小存储量和存储空间都比较小)
推荐连接:
mysql5.5源码编译安装 http://www.aminglinux.com/bbs/thread-1059-1-1.html
mysql5.7二进制包安装(变化较大) http://www.apelearn.com/bbs/thread-10105-1-1.html