Linux杂谈之mail

总结:经过两天的研究,终于解决了问题,特来记录以下,心情有些不能自已,真是学无止境!

 

一、问题的引入:

           操作:mail发送邮件失败

           结果:找不到libmysqlclient.so.18

二、问题的分析

      刚开始有点懵逼,跟mysql怎么扯上关系,这个后续再讲,既然找不到此文件--->

      分析1:开始思考是不是特定目录中没有此文件

      于是在系统中找此文件(下面是硬盘查找,比较慢,但是最准确!)

 find / -name libmysqlclient* ---->稍微模糊一点的查询(用到统配符!)

      结果:发现果然没有libmysqlclient.so.18,但是却有libmysqlclient.so.20(图片略)

--------------------------------------------分割线1--------------------------------------------------------------------------

      分析2:在虚拟机测试发现可以发送邮件(很纳闷),发现有libmysqlclient.so.18,libmysqlclient.so.20是怎么产生的?

      原因:把系统自带的mariadb-libs-5.5.35-1.el7.x86_64卸载了,安装mysql最新版(libmysqlclient.so.20),导致mail命令找不到libmysqlclient.so.18有关

     尝试1:

                 (1) 通过scp把相应的libmysqlclient.so.18文件复制过来(/usr/lib64/mysql)            

                 (2) ldconfig -v | grep mysql --->查看mysql有关的库的所在位置---->当时未操作此步骤(无从得之)

                 (3) mail -s “title” kiosk ---->发现此时没有错误(上面的问题解决了),但是邮件没有发送出去,/var/log/maillog也没有相应的信息!

    在此过程中:引申出文件库(后续报道)的相关问题---->ldconfig的含义!条条道路通罗马,还是度娘给力(差点想放弃!)

     尝试2:灵感来源

               (1)在编译的MYSQL目录中找到相应的软件包mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm

                     特点:该rpm包提供了必要的libmysqlclient.so.18文件等,向下兼容!

                     查询与mysql有关的程序包:rpm -qa |grep mysql --->发现没有此包

               (2)安装软件包mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm

                       安装前:预查询该rpm提供的安装文件(知道帮我们默认干了啥)

                        rpm -pql mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm

                (3)安装

                        rpm -ivh mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm

                (4)测试

                         mail -s "title" kiosk ------>发现此时没有错误,但是邮件没有发送出去,/var/log/maillog也没有相应的信息!

                         补充:重启了mysqld服务也没有作用!

               (5)补充 rpm -qf mysql-x86_64.conf
                         mysql-community-libs-5.7.23-1.el7.x86_64(最新的)
                         mysql-community-libs-compat-5.7.23-1.el7.x86_64(兼容的)

----------------------------------------------------------------------------------------------------------------------

          分析3:开始转换思路,往大的方面思考--->度娘linux学习-mail发送邮件(mail不能发邮件)

               关键的一句话:mail发送邮件,默认调用的是sendmail

                (1) 测试是否有此服务---> systemctl start sendmail.service

                       结果:Failed to start sendmail.service: Unit not found.----->系统就没有安装此服务!

                (2) 安装---->先挂载---->为了解决依赖性问题---->通过yum安装

                         yum install -y sendmail

                    (1/2):procmail-3.22-35.el7.x86_64.rpm    ----->依赖     
                    (2/2): sendmail-8.14.7-4.el7.x86_64.rpm ----->目标

                (3) 查看状态----->systemctl status sendmail.service

                      提示信息:
                          ● sendmail.service - Sendmail Mail Transport Agent
                              Loaded: loaded (/usr/lib/systemd/system/sendmail.service; enabled; vendor preset: disabled)
                              Active: inactive (dead)

                 (4)开机自启并查看状态

                            systemctl enable sendmail.service    

                            systemctl status   sendmail.service     

                (5)此时mail发送成功          

                (6) 查看sendmail命令的来源安装包--->rpm -qf /sbin/sendmaile

                    postfix-2.10.1-6.el7.x86_64(原来就有的)
                    sendmail-8.14.7-4.el7.x86_64(安装此软件新增的)

 

三、问题的解决

在linux中,邮件的发送所用的服务时postfix---->查看此服务是fail(郁闷)

二者的冲突

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值