Postfix中使用MySQL數(shù)據(jù)庫
Scott Cotton 和 Joshua Marcus寫了一段可以在postfix中添加mysql映射類型的代碼,從而我們可以將postfix查詢的別名數(shù)據(jù)庫等數(shù)據(jù)存儲在mysql數(shù)據(jù)庫中,讓postfix進行mysql查詢來得到結(jié)果。這樣做將有助于提供postfix的運行效率, 有其對需要不斷對映射數(shù)據(jù)的站點特別有用。
1.為postfix添加識別mysql數(shù)據(jù)庫映射的功能
a. 由于這段代碼使用了mysql客戶端庫,所以我們必須安裝mysql的開包。
可以到www.redhat.com等linux相關(guān)站點下載mysql開發(fā)包,也可以從某些linux的資源光盤中取得mysql的開發(fā)包,如MySQL-client-3.22.30-1.i386.rpm。
b. 安裝該開發(fā)包:
rpm -ivh MySQL-client-3.22.30-1.i386.rpm
c. 下載postfix的源代碼包,根據(jù)本章“3.1源代碼包的安裝”的提示進行
安裝,但是注意在執(zhí)行make命令之前先執(zhí)行以下命令:
make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I /usr/include/mysql'
'AUXLIBS=/usr/lib/mysql/libmysqlclient.a -lm'
5. 配置postfix使用mysql數(shù)據(jù)庫映射
我們以alias_maps進行說明。在main.cf中指定:
alias_maps = mysql:/etc/postfix/mysql-aliases.cf
6. 編輯mysql-aliases.cf
#首先指定登錄到mysql服務(wù)器的用戶名和密碼
user = your_user_name
password = your_password
#連接的數(shù)據(jù)庫名稱
dbname = your_database_name
#查詢的表名
table = mytable
#添加表的字段名稱
#forward_addr為轉(zhuǎn)發(fā)地址
#alias為別名數(shù)據(jù)
select_field=forward_addr
where_field=alias
#添加附加的查詢條件
additional_conditions=and status='paid'
#指定要連接的MySQL服務(wù)器
hosts=your.mysql.server
這樣,當(dāng)發(fā)生一個查詢的時候,postfix是以這樣的SQL語句進行查詢的:
select forward_addr from mytable where alias='$lookup' and status='paid'
以上只是一個例子。在實際的運用中您可以指定多個mysql數(shù)據(jù)庫,使用多個數(shù)據(jù)表格。
【編輯推薦】