LAMP是Linux+Apache(httpd)+MySQL+PHP的简称html
• Linux:操做系统mysql
• Apache(httpd):WEB服务器软件,提供WEB服务linux
• MySQL:关系型数据库用于存储数据(字符串)sql
• PHP:脚本语言(编写网站为主)数据库
Linux是操做系统同时也是架构的基础,Apache、MySQL以及PHP是基于操做系统运行的软件或服务或角色,这三个角色能够再同一机器上运行,也能够分开运行(Apache要和PHP在一块儿)。apache
• httpd、PHP、MySQL三者的工做方式vim
Apache和PHP是一个总体(PHP以模块的形式与Apache相结合),Apache自己不能直接与MySQL进行交互,要经过PHP模块进行交互。centos
用户经过浏览器向WEB服务器(Apache)发送请求,请求可分为两类,一类是静态请求(加载图片,访问相关资源),另外一类是动态请求(登陆,编辑)。当Apache识别用户请求为静态请求时,Apache与静态文件进行交互,调取用户所需文件;当Apache识别用户请求为动态请求时,经过PHP模块与MySQL进行交互,将用户提供的数据与MySQL中数据进行比对、写入、删除等,最终返回结果给用户。浏览器
• 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内部测试版本。
• MySQL的几个经常使用安装包:rpm、源码、二进制免编译
二进制包是区分平台的,centos7以前的版本都是区分32位和64位,centos7直接选择64位安装。
[root@linux-5 src]# uname –i //查看linux是多少位 x86_64
[root@linux-5 ~]# cd /usr/local/src //建议将全部软件包都放在这个目录下
下载地址到r.aminglinux.com找最新的下载
[root@linux-5 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
注:本人因为网络问题,没法直接将安装包下载至Linux操做系统中,故采用先下载至本地Windows系统上(版本5.6.35),后经过rz命令上传至Linux操做系统上
1.解压
[root@linux-5 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
2.重命名
[root@linux-5 src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql [root@linux-5 ~]# cd /usr/local/mysql [root@linux-5 mysql]# ls bin data include man README share support-files COPYING docs lib mysql-test scripts sql-bench
3.创建mysql用户,由于启动mysql时须要该用户
[root@linux-5 mysql]# useradd -s /sbin/nologin mysql
4.建立存放数据库目录的目录
[root@linux-5 mysql]# mkdir /data
5.初始化
[root@linux-5 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql //--user=mysql 以用户mysql身份运行,--datadir=/data/mysql存放数据库的目录 ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper //这里出现了错误,缘由是缺乏包 perl-Module-Install 可使用yum list 来查看缺乏包 [root@linux-5 mysql]# yum list |grep perl |grep -i dumper Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast perl-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 安装perl-Data-Dumper包 [root@linux-5 mysql]# yum install -y perl-Data-Dumper
6.而后再执行一次
[root@linux-5 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 若是看到两个OK说明执行正确,或者echo $? 结果为0 也表示执行正确。 [root@linux-5 mysql]# echo $? 0
Mysql的配置文件在/usr/local/mysql/support-files/目录下my-default.cnf,它是msyql的模板配置文件
1.拷贝配置文件
[root@linux-5 mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y //这里已经存在文件my.cnf,这是以前系统rpm安装留下的,咱们能够查看它是哪一个包安装的 [root@linux-5 mysql]# rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64
咱们这里直接按“y”覆盖便可
2.修改配置文件
[root@linux-5 ~]# vim /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [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 //mysql的安装目录 datadir = /data/mysql //存放数据库的目录 port = 3306 //端口 # server_id = ..... //mysql的ID号,作主从的时候要用到 socket = /tmp/mysql.sock //mysql服务监听的套件字地址,也是用来通讯的。 # 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
1.复制启动脚本
[root@linux-5 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2.修改启动脚本
[root@linux-5 mysql]# vim /etc/init.d/mysqld basedir=/usr/local/mysql datadir=/data/mysql
3.修改权限
[root@linux-5 mysql]# chmod 755 /etc/init.d/mysqld
4.将mysqld服务加入到系统服务列表中
[root@linux-5 mysql]# chkconfig --add mysqld
5.设置开机启动
[root@linux-5 mysql]# chkconfig mysqld on
6.启动服务
[root@linux-5 ~]# service mysqld start Starting MySQL.Logging to '/data/mysql/linux-5.err'. . SUCCESS!
注:若是启动不了,请到/data/mysql/目录下查看错误日志,这个日志一般是主机名.err
7.查看mysql进程
[root@linux-5 ~]# ps aux |grep mysqld root 3233 0.0 0.0 11772 1596 pts/1 S 19:58 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/linux-5.pid mysql 3395 0.8 24.0 973052 449444 pts/1 Sl 19:58 0:01 /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/linux-5.err --pid-file=/data/mysql/linux-5.pid --socket=/tmp/mysql.sock --port=3306 root 3443 0.0 0.0 112676 984 pts/1 S+ 20:01 0:00 grep --color=auto mysqld
8.查看mysql监听的端口
[root@linux-5 ~]# netstat -lnp |grep mysqld tcp6 0 0 :::3306 :::* LISTEN 3395/mysqld unix 2 [ ACC ] STREAM LISTENING 55465 3395/mysqld /tmp/mysql.sock
若是咱们不知道mysql的启动文件,咱们还可使用命令行的方法来启动mysql 先关闭以前打开的mysql
[root@linux-5 mysql]# service mysqld stop Shutting down MySQL.. SUCCESS!
执行命令行
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & //--defaults-file=/etc/my.cnf指定配置文件的路径
注:在使用kill杀死进程时,最好使用killall,不建议使用kill pid,killall更加安全一些,不会当即中止进程,以mysqld为例,当MySQL写数据时,killall会等待数据彻底写入完毕后再杀死进程,若是使用killall进程较长时间没有杀死,千万不要用kill -9强行杀死进程,不然极可能形成数据丢失,甚至数据库表的损坏。