这是在360培训时学习数据库时的笔记,主要学习了Mysql,也包含部分oracle,sqlserver.
零散
关系模型
- 关系:二维表
- 元组:表中的一行
- 属性:表中的一列
- 主码:能唯一标识某元组的属性值
MySql
基础
主键与外键
主关键字(主键,primary key)是被挑选出来, 主关键字作表的行的唯一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。 主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。又称主码。并且它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。
主键必须唯一。但不一定是一个字段,比如复合主键。
语句的分类
DDL:数据库定义语言,如创建,修改删除数据库对象.
1 | create table |
DML:数据库操作语言
1 |
DCL:数据库控制语言
1 | grant:授权 |
定义基本表:
1 | NOT MULL |
表其他1
2desc tablename :查看表
show create table tablename:显示表的结构
MySQL自带数据库
本条针对MySQL 官方 5.7.17版本,只有5.5以上的MySQL才有information_schema
information_schema
什么是information_schema
information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。感觉information_schema就像是MySQL实例的一个百科全书,记录了数据库当中大部分我们需要了结的信息,比如字符集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,索引信息,参数,优化,锁和事物等等
INFORMATION_SCHEMA提供对数据库元数据的访问,有关MySQL服务器信息,例如数据库或表的名称,列的数据类型或访问权限。
information_schema 中的表实际上是视图,而不是基本表,因此,文件系统上没有与之相关的文件
几个重要的表
- CHARACTER_SETS:提供了 mysql 可用字符集的信息。SHOW CHARACTER SET; 命令从这个表获取结果
- SCHEMATA:当前 mysql 实例中所有数据库的信息。SHOW DATABASES; 命令从这个表获取数据
- TABLES 表:存储数据库中的表信息(包括视图),包括表属于哪个数据库,表的类型、存储引擎、创建时间等信息。SHOW TABLES FROM XX; 命令从这个表获取结果
- COLUMNS 表:存储表中的列信息,包括表有多少列、每个列的类型等。SHOW COLUMNS FROM schemaname.tablename 命令从这个表获取结果
- STATISTICS 表:表索引的信息。SHOW INDEX FROM schemaname.tablename; 命令从这个表获取结果
- USER_PRIVILEGES 表:用户权限表。内容源自 mysql.user 授权表。是非标准表
- SCHEMA_PRIVILEGES 表:方案权限表。给出了关于方案(数据库)权限的信息。内容来自 mysql.db 授权表。是非标准表
- TABLE_PRIVILEGES 表:表权限表。给出了关于表权限的信息。内容源自 mysql.tables_priv 授权表。是非标准表
- COLUMN_PRIVILEGES 表:列权限表。给出了关于列权限的信息。内容源自 mysql.columns_priv 授权表。是非标准表
- COLLATIONS 表:提供了关于各字符集的对照信息。SHOW COLLATION; 命令从这个表获取结果
- TABLE_CONSTRAINTS 表:描述了存在约束的表。以及表的约束类型。
- KEY_COLUMN_USAGE 表:描述了具有约束的键列
- VIEWS 表:给出了关于数据库中的视图的信息。需要有 show views 权限,否则无法查看视图信息
performance_schema
什么是performance_schema
MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况,它具有以下特点:
- 提供了一种在数据库运行时实时检查server的内部执行情况的方法。performance_schema 数据库中的表使用performance_schema存储引擎。该数据库主要关注数据库运行过程中的性能相关的数据,与information_schema不同,information_schema主要关注server运行过程中的元数据信息
- performance_schema通过监视server的事件来实现监视server内部运行情况, “事件”就是server内部活动中所做的任何事情以及对应的时间消耗,利用这些信息来判断server中的相关资源消耗在了哪里?一般来说,事件可以是函数调用、操作系统的等待、SQL语句执行的阶段(如sql语句执行过程中的parsing 或 sorting阶段)或者整个SQL语句与SQL语句集合。事件的采集可以方便的提供server中的相关存储引擎对磁盘文件、表I/O、表锁等资源的同步调用信息。
- performance_schema中的事件与写入二进制日志中的事件(描述数据修改的events)、事件计划调度程序(这是一种存储程序)的事件不同。performance_schema中的事件记录的是server执行某些活动对某些资源的消耗、耗时、这些活动执行的次数等情况。
- performance_schema中的事件只记录在本地server的performance_schema中,其下的这些表中数据发生变化时不会被写入binlog中,也不会通过复制机制被复制到其他server中。
本段出自 独角的犀牛:https://www.jianshu.com/p/4c19af70c355
对于performance_schema暂时不深入学习.之后需要学可以参看 独角的犀牛:https://www.jianshu.com/p/4c19af70c355
语句实例
数据库维护
删除数据库
1 | drop database name; |
备份和恢复
只备份数据表
1
mysqldump [-h主机名] [-P端口] -u[username] -p[password] dbName > [存放路径]\name.sql --注意不在mysql里执行,直接在cmd下执行,且没有分号.
备份整个库
1
mysqldump [-h主机名] [-P端口] -u[username] -p[password] -B dbName > [存放路径]\name.sql --注意不在mysql
source 命令导入 (使用navcat的cmd失败原因未知)
1
2
3
4
5#需要先登录到mysql终端
mysql> create database abc; # 创建数据库
mysql> use abc; # 使用已创建的数据库
mysql> set names utf8; # 设置编码
mysql> source /home/abc/abc.sql # 导入备份数据库mysql命令导入整个数据库
1
mysql -u[username] -p[password] < 路径\name.sql --直接在cmd执行,不进入mysql
查看当前数据库下的用户:
1
select user,host from mysql.user;
创建一个新用户:
1
create user 'username'@'主机名' identified by 'password';
修改用户密码
1
2set password for '[username]'@'host'=password('[new_password]'); --mysql8.0以下版本
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; --mysql8.0 ,with 后的字段是指定加密规则.修改用户账号
1
rename user 'old_user'@'old_host' to 'new_user'@'new_host';
删除用户
1
drop user `user`@`host`;
权限管理
查看用户权限
1
show grants for 'user'@'host';
添加用户权限
表权限:’Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’
列权限:’Select’, ‘Insert’, ‘Update’, ‘References’
过程权限:’Execute’, ‘Alter Routine’, ‘Grant’
1 | grant [all privileges|select|create...] on [数据库名.表名] to 'username'@'hostname' indentified by '密码' with grant [option]; --8.0之前的版本 |
刷新用户权限 刷新后权限生效
1
flush privileges;
回收用户权限
1
revoke delete on *.* from 'jack'@'localhost';
数据操作
修改一行数据:1
update student set sno='s010' where sno='s0010';
1 | update [tablename] set [col1]=[newvalue1],[col2]=[newvalue2]... where [col1]=[oldvalue1],[col2]=[oldvalue]; |
字符串连接:1
update student set birthday=concat((year(now())-sage),1010) where sno='s006'; #使用concat(str1,str2)连接,不是字符串的转换为字符串.
数据表操作
Check约束 限制列中的取值范围如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制
下面的 SQL 在Persons
表创建时为Id_P
列创建 CHECK 约束。CHECK 约束规定Id_P
列必须只包含大于 0 的整数。1
2
3
4
5
6CREATE TABLE Persons -- 创建表时添加约束
(
Id_P int NOT NULL,
City varchar(255),
CHECK (Id_P>0)
)如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:
1
2
3
4
5
6
7
8
9CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)如果在表已存在的情况下为 “Id_P” 列创建 CHECK 约束,请使用下面的 SQL:
1
2
3
4
5ALTER TABLE Persons
ADD CHECK (Id_P>0)
或者
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')如需撤销 CHECK 约束,请使用下面的 SQL:
1
2ALTER TABLE Persons
DROP CHECK chk_Person修改表的字符集
1
语法:alter table 表名 convert to character set 字符集;
查询所有表名:
1
show tables;
查看表结构:
1
desc test;
设置自增:
1
2
3create table(no int primary not null auto_increament);
alter table student2 modify sno int primary key outo_increment;修改自增步长:
1
set auto_increment_increment=2;
修改自增初值:
1
alter table student auto_increment=10;
修改数据: update test set 字段1=’新值1’,字段2=’新值1’,… where id=1;
修改表结构: alter table student add 字段名 字段约束条件 //新增字段
alter tabke 表名 drop 字段名 //删除字段
alter table 表名 change 字段名 新字段名 字段约束条件 //修改字段
alter table 表名 modify 字段名 字段约束条件 //修改字段约束条件
Change与modify的区别:Change可以修改字段的名称
- 修改字段名称和属性:
1 | 将test字段改为test1 |
- 修改表名称
1
ALTER TABLE admin_user RENAME TO a_user;
数据库操作
查询所有库名:1
show databases;
查看数据库的属性:1
show create database test;
修改数据库属性:1
alter database test charset=utf8; or alter database test character set utf8;
查看字符集:1
show charset; -- GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK
创建字符集为utf8的数据库test:
1 | create database test charset utf8; |
更改数据库属性:
1 | alter database test character set utf8; |
部分查询语句
order by
ORDER BY 语句用于对结果集进行排序
语句用于根据指定的列对结果集进行排序,默认按照升序(asc)对记录进行排序,如果希望按照降序对记录进行排序,可以使用 DESC 关键字
特殊的:
group by, order by 后面跟数字,指的是 select 后面选择的列(属性),1 代表第一个列(属性),依次类推。
复杂查询
join on 中 使用where
多表left join是会生成一张临时表,并返回给用户
on条件是对连接前的两个表进行条件过滤,不符合的行过滤掉(如果是外连接,则过滤一张表)
where条件是针对最后生成的这张临时表进行过滤,过滤掉不符合where条件的记录,是真正的不符合就过滤掉
外连接中(如左连接)where限制左表时,减少行数
外连接中(如左连接)where限制右表时,不减少行数,被过滤数据,有表过滤行显示null
函数
字符连接
group_concat()
select GROUP_CONCAT(col_name SEPARATOR '|') FROM table_name
separator是指定连接符号
通常会有这种用法
1 | 待查询的数据库 |
1 | select no,group_concat(sname separetor '_') from ttable group by no; |
查询结果是,按照no
分组,同一no
的sname
合并,并使用_
连接
group_concat内还可以使用order by
1 | select name,group_concat(id order by id desc separetor '_') from ttable group by name; |
如果不使用分组(orderby),那么实际查询结果就是所有group_concat()
所指定的字段的值,并使用连接符号连接(默认是逗号),此时select
后只能有group_concat()
这一个查询字段,如果要包含其他查询字段就必须使用group by
1 | mysql> select group_concat(name) from ttable; |
字符串截取
left()
left(str, length) 从左截取n个
1 |
|
right(str, length) 从右截取n个
1 |
|
substring()
在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值
substring(str, pos);
从字符串的第 4 个字符位置开始取,直到结束
1 | substring('sqlstudy.com', 4) |
substring(str, pos, len);
从字符串的第 4 个字符位置开始取,只取 2 个字符:
1 |
|
从字符串的第 4 个字符位置(倒数)开始取,直到结束。
1 | mysql> select substring('sqlstudy.com', -4); |
从字符串的第 4 个字符位置(倒数)开始取,只取 2 个字符。1
2
3mysql> select substring('sqlstudy.com', -4, 2);
substring('sqlstudy.com', -4, 2)
substring_index()
substring_index(str,delim,count)
截取第二个 ‘.’ 之前的所有字符:1
2
3mysql> select substring_index('www.sqlstudy.com.cn', '.', 2);
substring_index('www.sqlstudy.com.cn', '.', 2)
截取第二个 ‘.’ (倒数)之后的所有字符:1
2
3mysql> select substring_index('www.sqlstudy.com.cn', '.', -2);
substring_index('www.sqlstudy.com.cn', '.', -2)
如果在字符串中找不到 delim 参数指定的值,就返回整个字符串
注释
第一种
1 | delete from haha -- 这是注释,前面要有一个空格 |
第二种
1 | delete from haha #这是注释,不需要空格 |
第三种
1 | delete from haha /*这是注释*/ |
其他实例
登录MYSQL:1
mysql –u root –proot -h 服务端ip地址 –P 端口
查看所有数据库:1
show databases;
查看所有表:1
show tables
查看一个表结构:1
desc student;
查看创建表的语句:1
show create table student
创建表的时候声明默认字符集:1
create table student(no int,name char(20)) default charset=utf8;
添加非空约束:1
alter table student modify column sname char(8) not null;
查询班级为95031或者性别为女的所有信息1
select * from student where class=95031 or ssex='女';
查询不姓王的同学的信息:1
select * student where sname not like '王%'
查询表中每个同学的姓名和年龄(已知生日字段):1
select sname,(year(curdate())-year(sbirthday)) from student
查询和’李军’同性别的所有sname:1
select sname from student where ssex=(select ssex from student where sname='李军');
复制表结构到新表1
CREATE TABLE 新表 LIKE 旧表 ; -- 复制所有字段类型(自增主键等)
1 | CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2; -- 主键类型,和自增不会复制过去 |
复制表结构及数据到新表()1
CREATE TABLE 新表 SELECT * FROM 旧表;
复制旧表数据到新表(两表结构相同)1
INSERT INTO 新表 SELECT * FROM 旧表
查询男生女生人数:
1 | select ssex,count(*) from student where ssex='男' union select ssex,count(*) from student where ssex='女'; |
查询第四条之后3条数据:
1 | select * from student limit 3,3; |
内连接:1
select * from table_a inner join table_b on table_a.a_id=table_b.b_id; -- 只显示符合on后面条件的结果,结果是a和b表的组合
外连接1
select * from table_a left join table_b on table_a.a_id=table_b.b_id; -- 左连接左边的全显示,右边的只显示符合on后条件的,不符合的显示null;右连接相反.
between 的范围是包含两边的边界值1
eg: id between 3 and 7 等价与 id >=3 and id<=7
not between 的范围是不包含边界值1
eg:id not between 3 and 7 等价与 id <3 or id>7
查询只出现一次的数据1
select sn from sc group by sn having count(sn)=1);
创建数据库后添加语句,避免乱码1
set names utf8;
查询“c001”课程比“c002”课程成绩高的所有学生的学号:
| sno | cno | score |
| :— | :—-| :—- |
| s001 | c001 | 78 |
| s002 | c001 | 80 |
| s001 | c002 | 82 |
| s002 | c002 | 72 |
| s003 | c003 | 73 |1
2select a.sno from (select * from sc8 where cno='c001') a join (select * from sc8 where cno='c002' )b on a.sno=b.sno and a.score>b.score;
# 类似的同一张表通过一列信息来限制另一列信息,将表拆分(差出两个表),然后查询,查询出来的表必需要设置表别名
限制查询结果不重复:1
select distinct name, id from table;
Web中间件
定义中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源.
用于提供系统软件和应用软件之间的连接,便于软件各部件之间的沟通,为一中或多种程序提供容器.
作用:屏蔽网络硬件平台的差异性,和操作系统与应用网络的差异性,同时负责负载均衡,连接管理和调度.
web服务器件用于提供http服务
Web应用的构成: web应用->中间件->数据库->操作系统
几个中间件的默认端口:
- apache:80;
- nginx: 80;
- iis:80;
- tomcat:8080
- JBoss:8080
- weblogic:7001
web中间件,容器,服务器的区别
web服务器用于提供http服务,或者把动态请求委托于其他程序.
web容器:用于给处于其中的应用程序组件(jsp,servlert)提供一个环境,是中间件的组成部分,实现了了对动态语言的解析,web容器属于中间件的组成部分(中间件可以没有)
IIS
优点:模块化网络核心,统一标准的Http管道
基本安装步骤
360实验平台,使用xp拓扑机
- 控制面板->添加或删除程序->添加/删除win组件
- windows组件向导下,勾选 应用程序服务器,点击详细信息
- 打开后勾选asp.net,取消勾选
internet信息服务(iis)
重新勾选后点击详细信息 - 打开后,选择iis组件中的万维网服务,文件传输协议(ftp)服务,nntp service 和 smtp service 四个服务.点击确定
- 下一步,要求插入光盘,选择路径
c/???
点击确定(需要选择并确定两次) - 点击完成,进入 控制面板->管理工具->internet服务管理器(iis管理器)
- 进入后,网站->默认站点,右键打开,记录路径
- 网站, 右键,新建网站
- 进入网站创建向导->下一步
- 输入网站描述,下一步
- ip: 127.0.0.1 , 端口: 80 下一步
- 这里提前在c盘建立
any
文件夹,用于存放网站数据 - 输入主目录路径
c:\any
,下一步 - 勾选 读取,运行脚本,浏览 下一步
- 完成
- internet信息服务(iis)管理器,可以产看到新建的网站,网站目录下为空
- 将桌面的网站文件解压到any目录下
- 回到iis管理器,any 右键 ,属性,主目录,配置,调试,勾选 启用asp服务… 启用asp 客户端….
- 选项,勾选启用父路径 确定
- 回到any属性->文档->添加,新增一个index.asp,确定,确定
- 回到iis管理器,单击web服务扩展,允许 ‘active serverpages’ ‘asp.net v1.1.4322’ ‘webdav’ ‘在服务器端的包含文件’
- 访问127.0.0.1
Apache与Tomcat
apache是web服务器,tomcat是应用服务器
静态网页apache处理并返回,动态请求apache转发给tomcat,tomcat处理后返回给apache,然后apache返回结果
Apache
全称:apache http server
apache是目前使用最广的web服务器,php是一种类似asp的服务器端脚本语言
Apache特点:简单,快速,稳定,可配置代理,强扩展,使用广泛,并发高,c实现
使用360实验平台在windows 的配置方法
- 双击apache安装包,开始apache安装
- next,接受协议,next,安装说明next
- 信息填写界面,前三项随意填写,勾选’fro all users….’,next
- 安装类型界面,典型安装,next
- 选择安装目录,改为
c:\wamp\apache2.2\
,ok,next,install,finish - 安装完成,托盘栏目出现带绿色标志的红羽毛,表示apache正常启动
- 开始配置php
- 浏览127.0.0.1可看到默认欢迎界面,apache安装完毕
- 将
php5.3.52-xxx.zip
解压到c:\wamp\php
php可以以两种方式运行:CGI(对应文件php5ts.dll文件)和SAPI方式。由于我们使用Apache,所以是以SAPI模块方式运行,对应文件是php5apache2_2.dll。配置php.ini文件,php提供了两个模板,php.ini-development和php.ini-production,前者适合开发程式使用(测试用),后者拥有较高的安全性设定,则适合上线当产品使用。这里我们将php.ini-development文件改为php.ini做配置文件使用,目录为C:\wamp\php,修改完成后打开该文件。
- 打开
c:\wamp\php
目录中的conf
目录下的httpd.conf
配置文件中添加
1
2
3LoadModule php5_module "c:/wamp/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "c:/wamp/php/"配置主页文件:找到DirectoryIndex参数,在后面添加index.php,保存httpd.conf文件.
- 打开
c:\wamp\php
目录,将php.ini-development
文件改为php.ini
做配置文件使用,修改后打开它 - 修改
dll
文件目录: 将 extendion_dir = “c:\wamp\php\ext” 赋值并取消前面的注释符号(分号) - 将
doc_root = "c:\wamp\Apache2.2\htdocs"
赋值并取消注释 - 取消
extension=php_mysql.dll
和extension=php_mysqli.dll
的注释,保存php.ini文件 - 开始加载MySQL模块
- 解压”桌面–实验工具”中的
phpMyAdmin.....zip
到c:\wamp\Apache2.2\htdocs
- 进入htdocs,修改文件夹名为
phpMyAdmin
- 右键右下角apache图标,单击open services打开服务窗口
- 找到apache2.2服务,单击并重新启动此服务
- 浏览器输入
127.0.0.1/phpmyadmin
访问,可以打开php页面,且当前拓扑机已经安装Mysql,用户名root
密码123456
,点击执行 - Apache端口号修改,打开
c:\wamp\Apache2.2\conf
目录下的httpd.conf
文件.修改Listen 80
为自己想要的端口数字如Listen 8081
,保存 - 开始->管理工具->服务,重启apache2.2
- 重启后127.0.0.1无法连接,浏览器默认80端口,输入
127.0.0.1:8081
,可以运行,出现默认欢迎界面 - 默认端口修改成功,修改apache网站根目录(c:\apache2.2)新建www文件夹,并在里面新建一个hellow.html写入欢迎内容.
- 网站根目录打开apache下的conf目录,打开httpd.conf,修改
DocumentRoot "c:/Apache2.2/htdocs"
为DocumentRoot "c:/Apache2.2/www"
- 将
Directory "c:/apache2.2/htdocs"
修改为Directory "c:/apache2.2/www"
- 网站主页
DirectoryIndex
添加hellow.html
,保存关闭,重启apache,进入172.0.0.1:8081
,就进入自建的欢迎页面
总结
重要的配置是:
- httpd.conf->Listen 修改ip和端口
- 例如
Listen 127.1.2.1.1:80
,也可以只改端口 Listen:800
- 例如
- httpd.conf->DocumentRoot 根目录
- httpd.conf->Directory
根目录
- httpd.conf->Directory
- httpd.conf->DirectoryIndex 网站主页
主目录下重要的目录:
- logs 日志目录
- access.log 访问日志
- error.log 错误日志
- install.log 安装日志
- conf 配置文件目录
- htdocs 默认网页文件目录
Tomcat
配置环境变量
几个环境变量的作用
- path: 配置cmd扫描执行文件的目录
- classpath: 是约定的一个可以设置我们自己的.class, jar文件所在目录的变量。不过某个Java程序可以自己决定取与不取这个变量。Tomcat 在某些情况下会去取,你自己的Java程序你不设置就会忽略它的。基本上用不到它
- java_home: JAVA_HOME是一个约定,通常它指的是JDK的目录。如果需要JDK的话,大部分程序会默认去环境变量中取JAVA_HOME这个变量
- jre_home:同样,这也是一个约定的变量,通常指JRE目录。其实大部分Java程序不需要JDK,而是只需要其子集JRE,所以很多程序也会去取这个变量来用。
- CATALINA_HOME:这是Tomcat用的,它的值代表当前tomat根目录,比如:E:\apache-tomcat-7.0.55。这个变量,仅当你移动了.bat/.sh等用来启动Tomcat的文件(就是不在原来的tomcat\bin下面了)时才需要指定。比如,在Linux中你将catalina.sh复制到/etc/rc.d/init.d/下做自启动服务时就需要设置一下
配置上述环境变量的例子:
1 | java_home:'C:\Program File\Java\jdk1.7.0_79' |
配置Tomcat
bin
目录存放启动关闭等脚本,内含计算机可以直接执行的二进制文件
完全配置好后执行startup.bat
开启tomcat
startup.bat文件会检查catalina.bat文件执行所需要的环境,并调用catalina.bat文件,catalina.bat负责启动tomcat.
执行时可能出现的错误:
1 | java.net.BindException:Address already in use:JVM_Bind. |
将桌面——实验工具中的war包放到Tomcat主目录的webapps目录下
先查看启动时的端口号,conf目录下面的server.xml
文件,用notepad++打开找到Connector port
,这个就是端口号,默认为8080.
用浏览器访问http://localhost:8080/hello
看到的运行界面就打开了刚才的hello文件了
访问http://localhost:8080
可以看到Tomcat的默认主页
NGINX
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好
优点:高并发支持好,邮件代理,负载均衡,安装使用简便,热部署,热升级,不间断运行
安装NGINX
- 将NGINX安装包解压到C盘,目录变为
c:\nginx-1.74\
- 打开解压后的NGINX目录,可以看到NGINX的配置文件目录(conf)、默认网页目录(html)、日志目录(log)和启动文件(nginx.exe)
- cmd进入
c:\nginx-1.4.7\
执行start nginx.exe
,打开浏览器访问127.0.0.1,出现欢迎页面 - 命令
nginx.exe -s stop
关闭服务
简单的介绍一下NGINX的命令
启动:start nginx或nginx.exe
停止:nginx.exe -s stop或nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
重新载入Nginx:nginx.exe -s reload
当配置信息修改,需要重新载入这些配置时使用此命令。
重新打开日志文件:nginx.exe -s reopen
查看Nginx版本:nginx -v
重要目录和文件
- conf 配置文件目录
- fastcgi.conf:fastcgi相关参数的配置文件
- mime.types:媒体类型
- nginx.conf:默认主配置文件
- scgi_params:scgi相关参数文件
- logs 日志目录
- access.log:访问日志
- error.log:错误日志
修改端口
nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80
修改 server
下的listen
,来修改端口
修改网站目录
默认的网页目录是html,默认主页是index.html和index.htm
同样是nginx.conf,修改locatin
下的root
网页根目录,和index
默认主页
WebLogic
WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的
多种标准支持,ejb,jsp,jms,jdbc,xml,wml. 极高的可扩展性,可靠性,快速开发,灵活性.
优点:领先的标准,扩展性,快速开发,部署灵活,关键任务可靠
直接使用安装包,取消勾选 更新, 典型安装,其他的都默认
安装完weblogic后,会弹出配置窗口,点击第一项开始进入配置
- 域设置点击“下一步”
- 点击“下一步”,配置weblogic账户密码,密码为weblogic123
- 点击“下一步”,直到出现创建部署选项按钮
- 创建部署选项,完成
- 启动weblogic服务启动weblogic服务的路径C:\Oracle\Middleware\user_projects\domains\base_domain下的
startWebLogic.cmd
应用部署web应用 - 们在网页浏览器中输入
http://localhost:7001/console
地址,就可以访问WebLogic的控制台了 - 稍等一会之后,可以看到登陆界面,输入之前设置的账号密码登录
- 点击左侧的部署
- 我们选择在C盘创建一个test文件夹,并将实验工具中的hello.war包放到该文件夹中
- 在右侧点击安装按钮,准备进行项目安装
- 看到路径输入框,可以在下面选择要部署的项目的位置,我们选择刚才复制到test目录下的war包,点击下一步
- 选择定位样式,这里选默认就行,点击下一步即可
- 可选配置,直接使用默认,可以直接点击完成,也可以点击下一步到确认界面
- 如果点击下一步,则可进入复查界面,这里将之前配置过的选项全都罗列出来,可以通过点击上一步进行修改,确认无误后,点击完成
- 保存完成后,会看到激活更改的提示,且不需要重启
- 这时便可以进行测试了,输入项目名称,看到了项目的欢迎页面,即项目部署成功。访问方式
http://127.0.0.1:7001/hello/
,其中hello为刚才部署的项目名称
重要目录
基本目录
- Coherrence 在集群协议,分布式的数据管理和缓存服务
- Logs 系统日志目录
- Modules weblogic运行时需要的jar文件
- user_projects 定义域存放的位置
- Utils 用户第三方工具包
- wlserver_10.3:weblogic主目录
User_projects目录
- Autodeploy:此目录下应用程序(ear,war)等被自动展开服务
- Bin:存放域中可执行文件
- Config:存放本域相关的配置文件
- Console-ext:控制台信息,只应用于adminServer
- Lib:库文件
- Security:安全相关
- Server:包含域的所有服务
- Startweblogic.cmd:用于win下WebLogic启动
- Startweblogic.sh:用于Linux下WebLogic启动
JBoss
jboss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。(jboss也是web容器,jsp/servlet容器,是一个完整的j2ee容器,但是不是核心功能)
优点:免费开源java,内存硬盘需求少,安装简单,热部署,运行效率高,安全.
- 解压jboss包到
c:/jboss-as-7.1.1-Final
- 安装好jdk配置好环境变量
配置jboss环境变量
1
JBOSS_HOME:'c:\jboss-as-7.1.1-Final'
运行之前必须添加用户,在JBoss的bin目录下找到
add-user.bat
运行,配置好用户名和密码- 启动bin目录下的
standalone.bat
- 访问127.0.0.1:8080,进入欢迎页面
- 将要部署的war包放入
C:\jboss-as-7.1.1.Final\standalone\deployments
- 然后通过浏览器访问网站: http://127.0.0.1/hell,看到自定义欢迎页面