关于Dovecot 与 mysql 安装的一场巨汗。

来源:互联网 发布:软件架构 pdf 编辑:程序博客网 时间:2024/05/18 03:39

如果你的服务器打算配备邮件功能, Dovecot  比较常用,所以一般我都在安装 RedHat 的时候把 邮件 里头的 Dovecot  选上。

然而安装完成之后,系统里头不单会有Dovecot 还会有mysql 5.0 

如果你还打算在这台服务器上装 Mysql 5.1,这么系统会告知你系统中已经存在 mysql 5.0 ,无法安装。

这么好了,就把原来的 mysql 卸载吧!rpm -e 。 由于rpm的依存关系,系统又会告知你dovecot 需要mysql,所以卸不成。

加上 --nodeps 强行卸载吧!?  这下你就可惨了.

我就是这样做,得到了一个痛苦的教训。我就是因为需要安装 mysql 5.1 强行卸载了系统自带的mysql 5.0 但 dovecot 依旧运行着,那时候没留意。

到有一天重启服务器之后,发现 dovecot 死活都启动不了!

查看 /var/log/maillog

Feb 23 15:17:33 admin dovecot: auth(default): dovecot-auth: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

先先以为是 X64 位 mysq 5.1 的问题,没有在 /usr/lib 下创建共享文件,于是乎加了个软连接过去。最后无果!错误依旧。

当时想来想去,想起了当时卸载的 mysql 5.0 ...

幸好我这台机器上运行的 mysql 5.1 只用于备用,不用顾及太多。卸载原来的 MySQL-shared-community-5.1.31-0.rhel5.x86_64.rpm 于是赶忙下载 MySQL-shared-community-5.0.77-0.rhel5.x86_64.rpm  装上!!再次启动 dovecot, 成功。

哎... 所以! 要么你用rpm 装Dovecot 的时候,就用编译包安装更新版本的 mysql 。要麽你用rpm安装mysql 的时候 就用编译包安装Dovecot 。

而且!还有个需要你铭记的 Dovecot 安装经验!! 如果你系统中已经运行有 Mysql 任何一个版本的服务!并且这服务相当重要!!千万别用 yum 方式自动下载安装 Dovecot !!

以下转载自红薯的博客:http://www.javayou.com/diary/16027

CentOS是一个改自RHEL的Linux发行版。
dovecot是一个POP3、IMAP邮件服务器。

如果你是使用命令 yum -y install dovecot 的话,那你需要确认一个问题,否则你哭都来不及。

你需要确认的事情是机器上是否装有mysql并且正在运行,而且是一个非常重要的数据库。

如果确实有mysql在运行着数据库,那你必须放弃使用 yum 方式来安装dovecot

否则安装的过程中dovecot的安装程序会将你的mysql干掉,并装入它自带的另外一个mysql(5.0.22),而且没有任何让你确认的信息提示,整个过程是强行的。好在它并不会删除你的mysql数据目录,但是它连你的配置文件my.cnf也一并破坏了。

之前有个客户遭遇过此问题,而我今天重蹈覆辙。好在数据目录完好无缺,好在配置文件我有备份,重装一份mysql即可。

老老实实下载源码去build吧。

 

0 0