当前位置: 首页 > 工具软件 > Postfix Admin > 使用案例 >

邮件服务 postfix和mariadb

朱运诚
2023-12-01

配置邮件服务器
DNS服务器: classroom.example.com
server0.example.com
• 电子邮件服务器的基本功能
– 为用户提供电子邮箱存储空间(用户名@邮件域名)
– 处理用户发出的邮件 —— 传递给收件服务器
– 处理用户收到的邮件 —— 投递到邮箱
用户发邮件的协议: SMTP 端口25
用户收邮件的协议: pop3 端口110 IMAP 端口143
虚拟机Server0配置为邮件服务器
1.安装postfix软件包
[root@server0 /]# yum -y install postfix
[root@server0 /]# rpm -q postfix

2.修改配置文件
[root@server0 /]# vim /etc/postfix/main.cf
在末行模式 输入 :set nu 显示行号
99 myorigin = server0.example.com #默认补全的域名后缀
116 inet_interfaces = all #开放本机所有网卡
164 mydestination = server0.example.com #判断为本域邮件的依据

  1. 重起postfix服务
    [root@server0 /]# systemctl restart postfix

4.测试发信 收信
[root@server0 /]# useradd yg
[root@server0 /]# useradd xln

• mail 发信操作
– mail -s ‘邮件标题’ -r 发件人 收件人

• mail 收信操作
– mail [-u 用户名]
[root@server0 /]# mail -s test01 -r yg xln
hahaxixihehelele
.
EOT
[root@server0 /]# 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 Sat Jan 27 14:07 18/585

echo 123456 | mail -s ‘test02’ -r yg xln
mail -u xln

数据库服务基础
什么是数据库: 存放数据的仓库
数据库----->很多的库---------->在每一 库里面有很多的表格
• RHEL7 中的 MariaDB 相关包
– mariadb-server:提供服务端有关的系统程序
1.安装数据库软件
[root@server0 /]# yum -y install mariadb-server

2.重起数据库服务
[root@server0 /]# systemctl restart mariadb

3.使用MariaDB 数据库
[root@server0 /]# mysql
MariaDB [(none)]> create database nsd1712; #创建nsd1712库
MariaDB [(none)]> show databases; #显示所有库
MariaDB [(none)]> drop database nsd1712; #删除nsd1712库
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database nsd; #创建nsd库
MariaDB [(none)]> show databases;
MariaDB [(none)]> quit #退出数据库

4.为MariaDB数据库 设置设置密码
数据库的管理员:root MariaDB数据库 MariaDB数据库mysql库中user表
系统的管理员:root Linux系统 /etc/passwd
[root@server0 /]# mysqladmin -u root password ‘123’
[root@server0 /]# mysql -u root -p
Enter password:
[root@server0 /]# mysql -u root -p123

  1. 数据库中表格 内容 的操作, 增(insert) 删(delete) 改(update) 查(select)
    [root@server0 /]# mysql -u root -p123
    MariaDB [(none)]> show databases; #显示有那些数据库
    MariaDB [(none)]> use nsd; #进入nsd库
    Database changed
    MariaDB [nsd]> show tables; #显示所有表格
    MariaDB [nsd]> use mysql; #进入mysql库
    Database changed
    MariaDB [mysql]> show tables; #显示所有表格
    MariaDB [mysql]> select * from user; #查询user表中所有字端内容
    MariaDB [mysql]> desc user; #查看表结构,具体都有那些表字端
    | Host
    | User
    | Password
    MariaDB [mysql]> select host,user,password from user;

#########################################################
• 导入/恢复到数据库
– mysql [-u用户名] [-p[密码]] 数据库名 < 备份文件.sql
wget http://classroom.example.com/pub/materials/users.sql
mysql -u root -p123 nsd < users.sql #恢复数据到nsd库中
mysql -u root -p123
MariaDB [(none)]> use nsd; #进入nsd库
MariaDB [nsd]> show tables; #显示所有表格
MariaDB [nsd]> select * from base; #查询base表所有字端信息
MariaDB [nsd]> select * from location; #查看location表所有信息
MariaDB [nsd]> desc base; #查看base表的结构
MariaDB [nsd]> desc location; #查看location表的结构

在 server0 上部署 MariaDB 数据库
– 除了 root 用户,此数据库只能被用户 dc 查询nsd数据库,此用户的密码为123
– root用户的密码为 123
用户授权设置
– grant 权限列表 on 数据库名.表名 to 用户名@
客户机地址 identified by ‘密码’;
[root@server0 /]# mysql -u root -p123
MariaDB [nsd]> grant select on nsd.* to dc@localhost identified by ‘123’;
当dc输入密码123从localhost本地登陆数据库,将会获得nsd库中所有表的查询权限
MariaDB [nsd]> quit
[root@server0 /]# mysql -u dc -p123
MariaDB [(none)]> select * from nsd.base;
MariaDB [nsd]> quit

#########################################################
案例5:使用数据库查询
2. 在系统 server0 上使用数据库 nsd,并使用相
应的 SQL 查询以回答下列问题:
1)密码是 solicitous 的人的名字?

[root@server0 /]# mysql -u root -p123

use nsd;
select * from base where password=‘solicitous’;
select name from base where password=‘solicitous’;
select name,password from base where password=‘solicitous’;
select * from base where name=‘tom’;
select * from base where password=‘pwd123’;

  1. 有多少人的 姓名是 Barbara 同时居住在 Sunnyvale?

select * from base,location
where base.name=‘Barbara’ and
location.city=‘Sunnyvale’ and
base.id=location.id;

select count(*) from base,location
where base.name=‘Barbara’ and
location.city=‘Sunnyvale’ and
base.id=location.id;
insert base values (6,‘Barbara’,‘4321’); #插入表新的记录
insert location values (6,‘Sunnyvale’); #插入表新的记录
select * from base;
select * from location;

  1. 禁止空密码root用户访问 mariadb 数据库(实质将user表中密码为空的记录删除)
    [root@server0 /]# mysql -u root -p123

select user,host,password from mysql.user where password=’’;
delete from mysql.user where password=’’;
select user,host,password from mysql.user;
flush privileges; #刷新user表中新的配置
[root@server0 /]# mysql -u root -h server0.example.com
-h: 指定登陆位置
########################################################

 类似资料: