最新动态
Linux杂谈之mail
2024-11-19 03:06

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

Linux杂谈之mail

 

一、问题的引入

           操作:mail发送邮件失败

           结果:找不到libmysqlclient.so.18

二、问题的分析

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

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

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

      结果:发现果然没有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(郁闷)

    以上就是本篇文章【Linux杂谈之mail】的全部内容了,欢迎阅览 ! 文章地址:http://keair.bhha.com.cn/quote/1286.html 
     动态      相关文章      文章      同类文章      热门文章      栏目首页      网站地图      返回首页 康宝晨移动站 http://keair.bhha.com.cn/mobile/ , 查看更多