關於Dovecot 與 mysql 安裝的一場巨汗。

如果你的服務器打算配備郵件功能, 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吧。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章