47. 第五节:DNS服务配置与应用
一.DNS概述
1.DNS(domain name system)简介
(1)DNS域名空间
根域
COM CN EDU NET …. 顶级域
Ahgaoxin gov edu …. 二级域
tinghua …. 子域
www mail movies … 主机
(2)资源记录
将DNS域名映射到指定类型的资源信息,以便在名称注册和解析时使用.
(3)DNS服务器
提供存储和应答资源记录的名称查询服务
(4)DNS客户端
用来查询DNS服务器,将域名称解析为查询中指定的资源记录类型.
2.DNS查询工作原理47
52. 6.正向区域文件
正向区域文件 /var/named/example.com.zone
(1)什么是区域文件:包括主机名和对应IP, 刷新时隔和过期时间等
(2)例(以下时间单位为:秒)
$ttl 38400 #定义允许客户端缓存来自查询的数据时间,实际配置中删除此行
@ IN SOA dns.example.com. Baikp.sohu.com. ( #授权主机定义
2005090503 年月日与修改次数
10800 为设置更新间隔时间(辅助DNS从主DNS)
3600 设置重试间隔
604800 设置过期时间(辅助DNS从主DNS)
38400 ) 同第一行.
IN NS dns.example.com.设置名称名服器资源记录
dns.example.com. IN A 192.168.185.186 设置主机A记录
www.example.com. IN A 192.168.185.187
mail.sohu.com. IN A 210.107.89.4
xiaomao IN CNAME dns 设置别名
example.com. IN MX 10 mail.sohu.com.设置邮件交换记录.10为优先级.1最
高,数字越小,优先级越高.
52
53. 7.反向区域文件
(1)反向区域文件 /var/named/example.com.local
(2)例:
$ttl 36000 实际配置中删除此行
@ IN SOA dns.example.com. Baikp.sohu.com (
2005090503
10800
3600
604800
36000 )
IN NS dns.example.com.
186 IN PTR dns.example.com.
187 IN PTR www.example.com.
注:每行语句同第6点说明一样.
53
54. 8.实现负载均衡功能
例:一家公司有三台内容相同的FTP服务器,IP分别为
192.168.0.1 192.168.0.2 192.168.0.3
现为了防止大家都访问到某一台的FTP服务器,而其它两台不被访问.
可在DNS中如下配置:
ftp IN A 192.168.0.1
ftp IN A 192.168.0.2
ftp IN A 192.168.0.3
这样做的目的,就是客户端通过DNS解析时,每次DNS解析的都不一样,从而可以实现,客户端可以较平均地访问每一台FTP服务器。DNS服务器会顺序解析。
9.实现直接解析域名
(1)作用:因为有的人不喜欢写www.example.com 来访问站点.而是在地址栏中直接输入example.com访问.
(2)方法:在正向区域文件中添加
example.com. IN A 192.168.185.187
或
. IN A 192.168.185.18754
120. (3)安装方法
tar xvzf openssl-0.9.8.tar.gz
cd openssl-0.9.8
./config
make
make install
tar xvzf Net_SSLeay.pm-1.25.tar.gz
cd Net_SSLeay.pm-1.25
perl Makefile.PL
make install
3.安装 Webmin
rpm –ivh Webmin-1.230-1.noarch.rpm
4.登录并改中文版本
http://192.168.186.183:10000/change-user/120
139. (2)复制表
格式:create table 新表名称 like 源表名称;
如:create table xstudent like student;
(3)删除表
格式:drop table 表名称1 [,表名称2,…];
如:drop table xstudent;
(4)修改表
格式:alter table 表名称 更改动作1[,更改动作2,…];
A.增加表中字段
alter table student add saddress varchar(25) #向表中添加字段
B.更改表字段名和字段类型
alter table student change saddress beizhu text;#beizhu为新字段
C.删除字段
alter table student drop beizhu;
D.更改名称
alter table student rename to xs;139
140. 4.插入记录
insert into 表名称(字段名1,字段2,…) values (字段1的值,字段2的值,…);
例如:要在表student中插入一组数据
insert into student(sno,sname,ssex,sbirthday,sdepa) values
(‘0321001’,‘LIU TAO’, default,19870201,‘math’);
类似例子
例1:要插入与前与相同的记录,可使用下面的insert命令缩写
insert into student values (‘0320001’, ‘LIU TAO’ , default,19870201,‘math’);
例2:表中有默认字段值,若就取默认值,这时只需修改要修改的内容
insert into student (sno,sname,sbirthday) values (‘0320002’, ‘WANG MEI’,19870204);
例3:在一个单独的insert语句中使用多个values子句,可插入多条记录
Insert into student values (‘0322001’, ‘ZHANG SAN’, ‘f’,19801011, ‘computer’), (‘0322002’, ‘LI SI’, ‘t’,19811101, ‘computer’);
(2)删除记录
delete from 表名称 where 条件表达式;
140
141. 例1:删除表中(student),sno字段值为‘0321002’的记录
delete from student where sno=‘0321002’;
例2:要从表student中删除sno字段值的前4位为‘0322’的所有记录
delete from student where left(sno,4)=‘0322’;
注:删除表中所有记录的方法: truncate table student;
(3)修改记录
格式:UPDATE 表名称 SET 字段名1=字段值1[,字段名2=字段值2…] WHERE 条件表达式
例:要修改表student中的sno字段值为0321002的记录,将其sbirthday字段值改为19900104、sdepa字段值改为‘english’
update student set sbirthday=19900104,sdepa=‘english’ where sno=‘0321002’;
5.索引的创建与删除(对数据量大的表,使用索引可以减少数据查询的执行时间)
(1)在创建表的同时创建索引
例:要创建一个选课课程表course,将课程编号cno字段定义为主键,同时为课程名称cname字段创建一个名为can的索引。
create table course (cno varchar (5) not null,cname varchar (30) not null,teacher varchar (20),primary key (cno),index cna (cname));141
142. (2)向已存在的表添加索引(unique或index字句)
格式:create [unique] index 索引名 on 表名称 (字段名1[(长度)],…);
例1:要为表student的sname字段创建名为sna的索引.
create index sna on student (sname);
例2:要为表student的sname字段创建名为sna的索引,并指定索引长度值为10.
create index sna on student (sname(10));
(3)删除索引
格式:drop index 索引名 on 表名称;
例:要删除表student中索引名为sna的索引.
drop index sna on student;
6.用户的创建与删除
说明1:系统安装好后,MYSQL默认有两个数据库(mysql和test),而且除了root用户
外,其他用户仅能访问test数据库;
说明2:mysql中设置5个MYSQL的授权表(user表/db表/host表/tables_priv表/columnts_priv表)142
143. (1)创建新用户
方法如下:
A.mysql –u root –p #以客理员登录
B.insert into mysql.user (host,user,password) values(‘%’, ‘guest’,password(‘guest’)); #向user表中添加一条记录
C.flush privileges; #重载授权表
D.mysql –h 192.168.16.1 –u guest –p #退出后,以新用户登录测试
(2)删除用户
A.mysql –u root –p #以客理员登录
B. delete from mysql.user where user=‘guest’; #从用户表中删除
C.flush privileges; #重载授权表
(3)更改用户密码
例:要将用户guest密码改为123456
A.mysql –u root –p #以客理员登录
B.update mysql.user set password=password(‘123456’) where user=‘guest’;
C.flush privileges; #重载授权表
143
144. 7.用户授权
(1)使用GRANT语句授权
格式:GRANT 权限列表[(字段列表)] ON 数据库名称.表名 TO 用户名@域
名或IP地址 [IDENTIFIED BY ‘密码值’] [WITH GRANT OPTION];
例一:要授给用户guest可以从任意主机连接到数据库服务器,并具有完全
访问学生选课数据库xsxk的权限.
grant all on xsxk.* to guest@‘%’ identified by ‘guest’;
说明:
A.%表示从任何主机连接数据库服务器,也可以用空白;
B.%.gdvcp.net 表示从gdvcp.net域中的任何主机连接数据库服务器;
C.192.168.16.% 表示从192.168.16.0子网中任何主机连接
D.localhost 表示从本地主机连接
E.192.168.16.19 表示从IP为192.168.16.19的主机连接
例二:新建一个用户tom,让他能从子网192.168.16.0中任何主机连接到数
据库服务器,可以读取数据库xsxk的内容,并且能修改表course中字段
teacher的值.
144
145. grant select on xsxk.* to tom@‘192.168.16.%’ identified by ‘123456’;
grant update(tearch) on xsxk.course to tom@‘192.168.16.%’;
例三:MYSQL管理员要授予用户admin可以从本地连接到数据库服务器,对
学生选课数据库xsxk具有完全访问权限,并可将其所拥有的权限授予其他
用户.
grant all on xsxk.* to admin@localhost identified by ‘sw56$zA’
with grant option;
(2)使用REVOKE语句撤权
格式:REVOKE 权限列表[(字段列表)] ON 数据库名称.表名称
FROM 用户名@域名或IP地址
例:MYSQL管理员要撤销用户admin@localhost对数据库xsxk所拥有的创建
删除数据库与表的权限,并撤销此用户可以把自己所拥有的权限授予其他用户的权限。
revoke create,drop on xsxk.* from admin@localhost;
revoke grant option on xsxk.* from admin@localhost;
145