1、IO模型理论基础详解:
                 http或https都是基于tcp协议完成通讯。在tcp中使用socket通讯模型,在domain中界定socket是如何定义。
                           domain有三种工作类型:
                                        unix domain:每个socket地址是个文件路径
                                        ipv4 domain:每个socket是ipv4:port
                                         ipv6 domain:每个socket是ipv6:port
                        
                   函数和过程:有返回值为函数。无返回值的称为过程。 
                   I/O:进程调用请求发起之后是否会被挂起
                            阻塞:进程发起I/O调用,recvfrom未完成之前,进程会被挂起,在数据未完成前该进程不能做任何工作;
                            非阻塞:进程发起I/O调用,被调用函数完成不会阻塞当前进程,而是立即返回; 
                            同步:进程发起一个过程或函数调用后,在没有得到结果之前,该调用将不会返回;
                            异步:进程发起一个过程或函数调用后,即使被调用者不能立即结果准备好,但也会返回结果(未完成),内核通知调用者结果什么时候会OK;

5种I/O模型:
                             同步阻塞:进程发起I/O调用由用户模式转为内核模式,进程进入不可中断睡眠,内核准备数据,数据准备完成后把数据从内核内存复制到进程内存中,复制完成后唤醒进程,
                             同步非阻塞:进程发起I/O调用并处于忙等待状态,进程频繁和内核交互查询数据准备情况,内核数据准备好后,进程由非阻塞(忙等待过程中)转为阻塞状态等待内核复制数据到进程内存中才能继续工作
                             I/O复用:prefork工作于复用I/O模型,当I/O请求发给进程后,进程使用select调用子进程接收请求并阻塞请求I/O准备数据,数据准备完成后通知进程,并用recvform进行数据复制,进程用(select | poll)同时监控多个I/O,实现一个进程可以同时处理多个I/O,                                     信号驱动I/O:event 工作于信号驱动I/O,进程发起SIGIO(sigaction)调用,进程处于非阻塞状态,数据准备完成后会通知进程,并返回给请求I/O,请求I/O发起recvform进行数据复制
                             异步I/O:nginx支持异步I/O,I/O请求发给进程,进程使用aio传给内核,内核完成数据准备和数据复制后通知进程。该进程一直处于非阻塞模型,文件请求可以异步,网络I/O无法异步

sendfile和sendfile64:可以在内核中直接构建发送报文通过tcp响应客户端请求,实现静态文件直接内核响应

mmap():磁盘数据映射到内核内存中,在映射到进程内存中加快客户端请求响应

2、数据库基础理论
                    动态资源:读入数据,对数据加工,输出结果(html标记)
       
                    数据模型:层次模型、网状模型、关系模型

约束:主键、外键、组合主键

DBMS(database managemenet system)优点:
                                数据独立性
                                高效数据存取
                                数据完整性和安全性
                                数据管理
                                并发存储和故障恢复
                                开发周期缩短

3、MySQL理论基础及LAMP平台
                   关系型数据库:oracle、db2、sqlserver、mysql-->mariadb、postgresql

关系数据库的组件:
                                 库:表的集合,每个表都有一个惟一名字;
                                 表(关系):行(row, record, tuple)和列(field, column, attribute)

约束:候选键(码)、主键(primary key)、惟一键(unique key)、外键(foreign key):引用性约束
                     
                     关系型查询语言:SQL
                                 关系运算:
                                          选择:挑选出符合指定条件行
                                          投影:挑选出关心的列

连接运算:
                                           笛卡尔积:从两个输入关系中输出所有的元组对(无论它们在共同的属性上取值是否相同),因此,也被称为交叉连接;
                                            自然连接: 从两个输入关系中输出这样的元组对:它们在相同的名字的所有属性上取值相同;

SQL语言有如下几个部分组成:
                                  数据定义语言:DDL(CREATE, DROP, ALTER, GRANT, REVOKE)
                                  数据操纵语言:DML(INSERT, DELETE, UPDATE, SELECT)
                                  事务控制:创建事务和结束事务

SQL的数据定义:
                                   创建关系,即创建表:
                                          每个关系模式;
                                          每个属性的取值类型;  
                                          完整性约束;
                                          索引的集合;
                                          表的安全性和权限信息;
                                          表的物理存储结构;
                                                    MyISAM: .frm, .MYD(数据), .MYI(索引)
                                                    InnoDB: .frm, .ibd(数据+索引)

SQL数据的类型:
                                     字符型:
                                                 固定长度的字符型:char
                                                 可变长度的字符型: varchar
                                       数值型:
                                                  整型:精确数值型(int) 
                                                   浮点型: 近似数值型(float、double)

LAMP: Linux + apache(httpd) + php (php-myql)+ mysql    
                                    mysql: 3306/tcp

httpd + php:
                                     php作为httpd的模块
                                         当php以模块化使用时,只需重新启动httpd
                                                /etc/httpd/conf.d/php.conf:主配置文件
                                                /usr/lib64/httpd/modules/libphp5.so:模块位置 
                                     httpd基于cgi协议与php通信
                                     php工作为一个服务器:httpd以fastcgi协议与php服务器进程进行通信
      
                         php的安装:
                                     rpm包、编译安装
                         开源php站点程序:
                                     wordpress
                                     drupal, joomlar
                                     phpwind(阿里)
                                     discuz(腾讯)
                                     phpbb
                                     phpMyAdmin: php, 管理 mysql程序

php测试代码:
                               <html>
                                         <h1> this page </h1>
                                         <?php
                                                    phpinfo();   测试php是否正常工作
                                                
                                          ?>
                                         <?php
                                                    $link = mysql_connect('127.0.0.1','root','123456');测试php连接mysql是否成功
                                                                if ($link)
                                                                     echo "ok"; 
                                                                else 
                                                                       echo "no";
                                                     mysql_close(); 
                                           ?>

</html>

4、LAMP平台理论基础及部署       
                         MySQL安装:
                                      1、rpm包安装 项目方提供、OS vendor 
                                      2、通用二进制格式 展开、配置后即可使用
                                      3、源码编译安装 cmake编译器

CentOS 6-mysql-server: 
                                       服务脚本:/etc/rc.d/init.d/mysqld
                                       主服务程序:/usr/bin/mysqld_safe
                                       数据文件:/var/lib/mysql
                                       配置文件:/etc/my.cnf
                                       客户端程序:/usr/bin/mysql
                                       unix sock: /var/lib/mysql/mysql.sock
                             mysqld第一次启动之前需要先初始化:创建mysqld服务自身运行依赖元数据数据库:mysql

CentOS 7
                                         systemctl start mariadb.service
                       
                             mysql客户端程序的基本使用:
                                          -u USERNAME: 默认为root
                                          -h HOST: 默认为localhost
                                          -p [PASSWORD]: 输入密码

mysql的用户账号:USERNAME@HOST
                                           USERNAME: 用户名
                                           HOST: 此用户仅允许通过此处指定的主机登录mysqld服务;
                                           root@localhost, root@'127.0.0.1', root@'HOSTNAME'

交互式命令:
                                           客户端命令:无需分号结尾;
                                           服务器端命令:必需分号结尾;

mysql注意事项:
             mysql命令和字段名不区分大小写,表名在linux中会区分大小写

mysql常用命令:
             show databases;显示所有的数据库名称
             select version(); 显示数据库版本
             select user();显示用户
             use mysql;指定使用哪个数据库
             show tables;显示当前库中的表
             desc user;显示表结构
             select user,host,password from user;查看用户登录限制
             show table status\G;显示表的详细信息
             show character set;显示数据库支持的字符集
             show collation;查看字符排序规则
             show global variables;显示服务器工作属性所有环境变量,show global variables like 'wait_timeout';查看单个
             show global status;显示所有执行命令统计数据;show global status like 'com_select';显示单个

转载于:https://blog.51cto.com/5990383/1653708

马哥教育第二十二天IO模型理论、数据库基础理论、LAMP平台理论基础及mysql部署...相关推荐

  1. 马哥教育第二十四ftp协议、vsftpd的高级应用、rpc概念及nfs的基本应用、samba及其基本应用...

    1.ftp协议及vsftpd的基本应用          文件共享服务:                  工作在应用层:ftp(file transfer protocol)             ...

  2. 英语专业有必要学python吗-马哥教育官网-专业Linux培训班,Python培训机构

    今天给大家分享一篇 0x00 前言 你想知道背单词软件有大概多少人注册第一天都没有背完嘛? 你想知道背单词软件这么火,这么多人在使用,真的有多少人真的在背诵嘛? 别急,Python程序员用数据给你说话 ...

  3. 马哥python培训靠谱吗马哥教育python课程再次革命性升级

    2019 年初,马哥教育迎来一次"大升级"-- 2019 全新Python全能新版课程大纲正式上线.历时半年,走访100+互联网企业,挖掘企业真实需求,腾讯,阿里专家亲自参与设计, ...

  4. python训练营免费领取-马哥教育官网-专业Linux培训班,Python培训机构

    [课程第一天] [课程第二天] [课程第三天] [课程第四天] [课程第五天] [课程第六天] [课程第七天] 三.学习的具体平台和方式 1.学习的平台 以录播视频和文字版本为主,QQ社群资深工程师答 ...

  5. python类型转换-马哥教育官网-专业Linux培训班,Python培训机构

    今天马哥教育要跟大家分享的文章是类型转换是什么?我们要跟大家探讨的是Python课程中类型转换的相关内容,比如将小数转化为小数如何表达?整数转化为字符如何表达? Python的几种最基本的数据类型,我 ...

  6. 自动化专业学python有用吗-马哥教育官网-专业Linux培训班,Python培训机构

    今天小编要来说一下Python自动化的学习思路, 对于刚刚进入的测试行业的人来说,未来该怎么样朝着自动化方向发展,即使接触到了自动化测试,又该从何下手去学呢? 简单的说, 做测试做的好,会了接口,会了 ...

  7. 【马哥教育视频】cacti入门及进阶[已更新至第四段]

    马哥教育(http://www.magedu.com)视频系列之"cacti入门及进阶",本系列视频共四段,需要有一定的Linux使用基础才能学习. 第一段视频讲解了SNMP协议原 ...

  8. python培训班骗局-马哥教育官网-专业Linux培训班,Python培训机构

    问题的起源 早些时候使用with实现了一版全局进程锁,希望实现以下效果: 全局进程锁本身不用多说,大部分都依靠外部的缓存来实现的,redis上用的是setnx,有时候根据需要加上缓存击穿问题.随机延后 ...

  9. python在线学习直播-马哥教育官网-专业Linux培训班,Python培训机构

    一直以来,IT行业的高薪吸引了大量的人员进入--2017年,国家统计局发布的薪酬水平统计中,IT首次超过金融,成为平均薪资最高的行业. IT行业的高薪不是凭空而来,单单是入行门槛就拦住了一大批人.在这 ...

最新文章

  1. 16、子查询改写为表连接
  2. flex使用FlexPrintJob打印问题
  3. mysql快捷创建数据库_mysql数据库快速入门(1)
  4. LeetCode之Intersection of Two Arrays
  5. Spring 容器:三种方式解决 Resource leak: ‘applicationContext‘ is never closed 问题
  6. mips汇编计算开方_东南大学计算机系统综合设计MOOC第5期开课
  7. Android-动画简介
  8. Linux系统安全概述-sudo授权-pam认证机制-对称加密-非对称加密-md5-数字证书
  9. 模电实验——实验三 集成运算放大器的基本应用
  10. Ubuntu下安装SQLite、与简单介绍
  11. 数据增强神器 SimpleCopyPaste 支持全流程
  12. 生成1000个不同的随机数
  13. CyanogenMod编译
  14. 开关电源共模电感和X电容的选取?
  15. HTML的怎么使用,开发工具以及常用标签。
  16. SpringCloud中的application-test.yml剖析(以user模块为例)
  17. 2021世界人工智能大会:站在人工智能时代的门槛
  18. 西部数码网站管理助手 mysql_西部数码网站管理助手开启自定义伪静态教程
  19. Windows XP With SP3 简体中文版下载
  20. 参与广州的第四届手机应用开发者大会感想

热门文章

  1. OpenCV android sdk配置OpenCV android NDK开发实例
  2. 查询数据表结构并查出结构的结构信息
  3. java对象是如何创建的
  4. 扩展 lua require 的行为
  5. SharePoint Framework 企业向导(九)
  6. TFS与Eclipse、Microsoft Visual Studio等客户端以webservice进行交换。
  7. php导出csv数据在浏览器中输出提供下载或保存到文件的示例
  8. 安卓手机获取基站信息
  9. python下selenium测试报告整合
  10. Stars HDU 1541