LNMP
用户通过浏览器输入域名请求nginx web服务,如果请求时静态资源,则由nginx解析返回给用户;如果是动态请求(.php结尾),那么nginx就会把它通过FastCGI接口(生产常用方法)发送给PHP引擎服务(FastCGI进程php-fpm)进行解析,如果这个动态请求要读取数据库数据,那么,PHP就会继续向后请求MYSQL数据库,以读取需要的数据,并最终通过Nginx服务把获取的数据返回给用户,这就是LNMP环境的基本请求顺序流程
LNMP之MYSQL数据库
MYSQL是一种关系形数据库管理软件,关系型数据库的特点是将数据保存在不同的二维表中,并且将这些表放入不同的数据库中,而不是把所有数据统一放在一个大仓库里,这样的设计增加了MYSQL的读取速度,灵活性和可管理性也得到了很大提高。
1. 为什么选择MYSQL数据库
- 性能卓越,服务稳定,很少出现异常宕机
- 开放源代码且无版权制约,自主性强,使用成本低
- 历史悠久,社区及用户非常活跃,遇到问题,可以很快获取到帮助
- 软件体积小,安装使用简单,并且易于维护,安装及维护成本低
- 支持多种操作系统,提供多种api接口,支持多种开发语言,特别是对流行的PHP语言无缝支持
2. 安装MYSQL数据库
当前使用最为广泛是MYSQL5.5系列版本的数据库,MYSQL安装方式比较在nginx web服务应用我们已经说过
下面我们直接通过二进制文件安装
包源
http://mirrors.sohu.com/ 可通过搜狐源站下载对应包 http://dev.mysql.com mysql下载官网 安装 [root@Poppy mysql]# useradd -s /sbin/nologin mysql -M # 创建启动mysql的用户 [root@Poppy tools]# wget dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.49-linux2.6-x86_64.tar.gz # 下载二进制文件 [root@Poppy tools]# tar -xf mysql-5.5.49-linux2.6-x86_64.tar.gz # 解压缩文件 [root@Poppy tools]# mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49 # 将解压出来的目录移动到我们的程序目录下 [root@Poppy tools]# ln -s /application/mysql-5.5.49/ /application/mysql # 做个链接 [root@Poppy tools]# cd /application/mysql # 切换到链接的目录下 [root@Poppy mysql]# chown -R mysql.mysql /application/mysql/ # 将链接的目录属主属组更替成启动mysql的用户 [root@Poppy mysql]# yum install libaio # 安装缺省库文件 [root@Poppy mysql]# ./scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql Installing MySQL system tables... # 初始化数据库 180610 22:58:07 [Note] /application/mysql//bin/mysqld (mysqld 5.5.49) starting as process 10106 ... OK Filling help tables... 180610 22:58:07 [Note] /application/mysql//bin/mysqld (mysqld 5.5.49) starting as process 10113 ... OK --basedir=/application/mysql/ # 安装的根 --datadir=/application/mysql/data/ # 放数据的 [root@Poppy mysql]# ls data/ # 验证默认库是否创建 mysql performance_schema 内部管理的库 test
配置并启动MYSQl数据库
通过守护进程控制服务的启动 [root@Poppy support-files]# sed -i 's#/usr/local/#/application/#g' mysql.server # 默认安装路径是/usr/local/所以我们替换成我们的目录 [root@Poppy support-files]# cp -rf my-small.cnf /etc/my.cnf # 生成配置文件 [root@Poppy support-files]# cp -a mysql.server /etc/init.d/mysqld cp: overwrite ‘/etc/init.d/mysqld’? y # 复制到守护进程下,控制启停 [root@Poppy support-files]# chmod +x /etc/init.d/mysqld [root@Poppy support-files]# /etc/init.d/mysqld stop Shutting down MySQL. [ OK ] [root@Poppy support-files]# /etc/init.d/mysqld start Starting MySQL.. 这是启动mysql规范的方式之一,还可以使用 [root@Poppy bin]# cd bin [root@Poppy bin]# sed -i 's#/usr/local/#/application/#g' mysqld_safe [root@Poppy mysql]# cp support-files/my-small.cnf /etc/my.cnf # 生成配置文件 [root@Poppy mysql]# /application/mysql/bin/mysqld_safe --user=mysql 180610 23:35:05 mysqld_safe Logging to '/application/mysql/data/Poppy.err'. 180610 23:35:06 mysqld_safe Starting mysqld daemon with databases from /application/mysql/data 通过netstat -ntlp可查看端口是否开启
登录到MYSQL
绝对路径方式登录 [root@Poppy mysql]# /application/mysql/bin/mysql 登录命令加载 [root@Poppy mysql]# echo "PATH='/application/mysql/bin/:$PATH'" >> /etc/profile [root@Poppy mysql]# . /etc/profile # 中间有个空格 [root@Poppy mysql]# echo $PATH # 按顺序加载命令,如果是rpm,yum优先级会在前面 /application/mysql/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@Poppy mysql]# mysql
MYSQL设置密码
mysql -uroot -p 没有密码直接回车 设置密码 [root@Poppy ~]# mysqladmin -u root password 'joker123' 更改密码 [root@Poppy ~]# mysqladmin -uroot -pjoker123 password '123456' 如果是远程主机加入-h参数
附赠安装脚本
useradd -s /sbin/nologin mysql -M wget dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.49-linux2.6-x86_64.tar.gz tar -xf mysql-5.5.49-linux2.6-x86_64.tar.gz mkdir -p /application mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49/ ln -s /application/mysql-5.5.49/ /application/mysql cd /application/mysql chown -R mysql.mysql /application/mysql/ yum install -y libaio ./scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql cd support-files/ cp -rf my-small.cnf /etc/my.cnf sed -i 's#/usr/local/#/application/#g' mysql.server cp -amysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld /etc/init.d/mysqld start echo "PATH='/application/mysql/bin/:$PATH'" >> /etc/profile . /etc/profile mysqladmin -u root password 'joker123'