Day08 电子邮件基础&数据库基础(Enginner02)

  1. 云栖社区>
  2. 博客>
  3. 正文

Day08 电子邮件基础&数据库基础(Enginner02)

技术小阿哥 2017-11-27 17:50:00 浏览1130
展开阅读全文

一、电子邮件基础

1.1 电子邮件服务器的基本功能

为用户提供电子邮箱存储空间
处理用户发出的邮件—传递给收件服务器
处理用户收到的邮件—投递到邮箱

1.2 收发邮件的协议

SMTP:25/tcp
POP3:110/tcp
IMAP:143/tcp

1.3 搭建基本邮件服务器

1.3.1安装postfix软件包

yum -y install postfix
rpm -qa| grep postfix

1.3.2 /etc/postfix/main.cf

postfix的主配置文件,特点是从上到下,后设置的选项会覆盖之前设置的选项,即后应用的生效
vim /etc/postfix/main.cf
到76行,把#删掉,修改myhostname = server0.example.com #指定主机名
到83行,把#删掉,修改mydomain = example.com #指定域名
到99行,把#删掉,修改myorigin = server0.example.com #向外发邮件时标记的来源域
到116行,把#删掉,修改inet_interfaces = loopback-only#仅允许本机
到164行,把#删掉,修改mydestination = server0.example.com #根据邮件后缀来判断是否为本域邮件,名字为server0.example.com就是本域
myhostname = server0.example.com
mydomain = example.com
myorigin = server0.example.com
inet_interfaces = loopback-only
mydestination = server0.example.com

1.3.3 systemctl restart postfix systemctl enable postfix

重启并设置开机启动postfix

1.4 测试邮件的收发

1.4.1创建两个用户yg、xln

useradd yg
echo 123|passwd --stdin yg
useradd xln
echo 123|passwd --stdin xln
id yg
id xln

1.4.2 发送邮件命令

mail -s 'subjec' -r [from] [to]br/>例子1:yg@server0.example.com发邮件给xln@server0.example.com,主题为test01
mail -s 'test01' -r yg xln#回车,在下面的行里面输入
Hi xln
long time no see
how are you
. #当一行只有一个.的时候系统判断为信件结尾,结束写邮件并发出
br/>例子2:yg@server0.example.com发邮件给xln@server0.example.com,主题为test01
echo -e “hi xln \nlong time no see \nhow are you“ | mail -s ‘second' -r yg xln

1.4.3 接收邮件命令

mail -u [username]
例子:xln查看yg发来的邮件
mail -u xln #回车进入交互式界面
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/xln": 1 message 1 new

N 1 yg@server0.example.c Thu Nov 2 11:26 20/604 "test01"
& 1 #N表示新邮件,1表示邮件编号为1
Message 1: #输入1选择第一封邮件
From yg@server0.example.com Thu Nov 2 11:26:52 2017
Return-Path: <yg@server0.example.com>
X-Original-To: xln
Delivered-To: xln@server0.example.com
Date: Thu, 02 Nov 2017 11:26:52 +0800
From: yg@server0.example.com
To: xln@server0.example.com
Subject: test01
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
Status: R

Hi xln
long time no see
how are you

& delete 1-10 #删除1~10封邮件

1.5 nullclient邮件服务器

1.5.1 定义

空客户端邮件服务器。本身没有任何邮箱帐号,不需要投递任何邮件。但是可以为用户代发邮件

1.5.2 应用场景

在企业内网的内部系统中,当web、ftp等服务器连接外网的速度较慢,或者无法访问外网。当服务器出现异常时,为了能快速的发出报警邮件,可以直接联系邮件空客户端,以最快的速度把邮件发给运维人员,以便运维人员及时处理。
但由于监控服务器的盛行,现在很少使用空客户端方式了

1.5.3 配置desktop0为后端邮件服务器

在desktop0上操作:
两种方法:
方法1:通过脚本lab smtp-nullclient setup自动设置,实质上修改和添加了这些行
修改部分:
inet_interfaces = all
添加部分:
mynetworks = 172.25.0.0/24
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_key_file = /etc/pki/tls/private/postfix.pem

方法2:手动修改配置文件
vim /etc/postfix/main.cf
到99行,把#删掉,修改myorigin = desktop0.example.com #默认补全的邮件后缀
到116行,把#删掉,修改inet_interfaces = all #允许所有客户端
到164行,把#删掉,修改mydestination = desktop0.example.com #投递域的域名,名字为desktop0.example.com就是本域
mynetworks = 172.25.0.0/24
myorigin = desktop0.example.com
mydestination = desktop0.example.com
inet_interfaces = all

1.5.4配置nullclient服务器

在server0上操作:
vim /etc/postfix/main.cf
到99行,把#删掉,修改myorigin = desktop0.example.com #向外发邮件时标记的来源域
到116行,把#删掉,修改inet_interfaces = loopback-only #仅允许本机
到164行,把#删掉,修改mydestination = #设置为空表示没有投递域
到264行,把#删掉,修改mynetworks = 127.0.0.0/8 [::1]/128
到317行,把#删掉,修改relayhost = 172.25.0.10 #指定后端(目标)邮件服务器
重启服务 systemctl restart postfix systemctl enable postfix
inet_interfaces = loopback-only
mydestination =
mynetworks = 127.0.0.0/8 [::1]/128
relayhost = [smtp0.example.com]

1.5.5 测试nullclient服务器

在server0上写一封邮件给student,此时在server0上无法收到邮件,邮件会转到desktop0上去

二、数据库服务基础

2.1 表字段&表记录

编号 姓名 手机号 住址
1 zs 1111111111 上海
2 ls 2222222222 北京
3 ww 3333333333 广州
黑色区域:表字段
其他区域:表记录

2.2 yum -y install mariadb-server mariadb

安装mariadb-server(服务端)和mariadb(客户端及工具)

2.3 MariaDB简介

由MySQL的开发者开发出来的开源数据库系统
端口号 3306/tcp
不支持tab键
所有命令必须以;结尾

2.4 常用命令

show databases;#显示所有数据库
create database nsd1709;#创建数据库nsd1709
drop databases nsd1709;#删除数据库nsd1709
status;#查看状态
quit;#退出
\c 命令输入错误后结束命令行 
'; 命令输入错误后结束命令行
"; 命令输入错误后结束命令行
\G;让查询的结果竖着显示

2.5 修改数据库密码

2.5.1 初始化设置密码

注意!数据库管理员是root,但是与系统的root用户没有任何关系
在linux系统里执行
mysqladmin -u root password ‘123' #设置数据库管理员root的密码为123
修改密码后,必须通过mysql -uroot -p123登陆数据库,但是这个命令会显示密码,极其不安全。必须以交互式登陆
mysql -uroot -p
Enter password:

2.5.2 破解密码

在linux系统里执行
systemctl stop mariadb
mysqld_safe --skip-grant-tables & #跳过检查授权表启动
[1] 25828
[root@room4pc09 mysql]# 170925 14:46:03 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
170925 14:46:03 mysqld_safe A mysqld process already exists
mysql -h127.0.0.1 -uroot -p
SET password for 'root'@'localhost'=password('newpassword');
exit
kill -9 25828
systemctl start mariadb

2.5.3 修改密码方法1

在数据库里执行
use mysql;
UPDATE user SET password=password('newpassword') WHERE user='root';
flush privileges;
exit

2.5.4修改密码方法2

在数据库里执行
SET password for 'root'@'localhost'=password('newpassword');
systemctl start mariadb

2.6 主配置文件修改

vim /etc/my.cnf
在mysqld下面另起一行,输入下面的语句
skip-networking #跳过网络监听,只对本机提供服务

2.7 数据库的增删改查

表和表之间用”,”
库和表之间用”.”

2.7.1 show databases;

显示所有的数据库

2.7.2 use nsd;

选择并打开nsd数据库

2.7.3 show tables;

查看数据库里面的表

2.7.4 导入数据库

命令格式:mysql -u[username] -p [database_name] < [backup_files]
在linux系统中执行
wget 
http://172.25.0.254/pub/materials/users.sql
mysql -uroot -p nsd < users.sql
mysql -uroot -p
MariaDB [nsd]> use nsd;
MariaDB [nsd]> show tables;
+---------------+
| Tables_in_nsd |
+---------------+
| base |
| location |
+---------------+

2.7.5 select * from nsd.base;

命令格式:select 表字段 from 数据库名.表格名;

查询nsd数据库的base表的所有表字段信息
MariaDB [nsd]> select * from nsd.base;
+------+---------+------------+
| id | name | password |
+------+---------+------------+
| 1 | Tom | 123 |
| 2 | Barbara | 456 |
| 3 | James | solicitous |
| 4 | Smith | tarena |
| 5 | Barbara | pwd123 |
+------+---------+------------+
5 rows in set (0.00 sec)

2.7.6 select * from base where name='tom';

查询name为tom的用户
MariaDB [nsd]> select * from base where name='tom';
+------+------+----------+
| id | name | password |
+------+------+----------+
| 1 | Tom | 123 |
+------+------+----------+
1 row in set (0.00 sec)

2.7.7 select * from nsd.base where password='solicitous' and id='3';

查询密码为solicitous而且id=3的表记录

2.7.8 select * from nsd.base where name='Barbara' or id='3';

查询名字为Barbara或者id=3的表记录

2.7.9 select count(*) from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;

查找住在Sunnyvale的名字叫Barbara的人数

2.8 数据库的授权

命令格式:grant 权限列表 on 数据库名.表名 to 用户名@localhost identified by ‘密码'

2.8.1 权限列表

insert:增加
delete:删除
update:修改
select:查询

grant select on nsd.* to lisi@localhost identified by '456' #lisi用户在本地登录后拥有对nsd库的所有表的查询权限
select user,password from mysql.user where user='lisi';

2.9 数据库的修改

2.9.1 insert base values(6,'Barbara',123456);

增加一条表记录,id=6,name=Barbara,密码=123456

2.9.2 insert location values(6,'Sunnyvale');

增加一条表记录,id=6,city=Barbara

2.10 数据库记录的删除

delete from user where password='' and user='root';
删除用户名为root,并且密码为空的记录

2.11 查看表结构

desc nsd.base;



本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/2068709,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小阿哥
+ 关注