首页 运维 正文
Postfix中使用MySQL数据库

 2022-10-23    468  

  Scott Cotton 和 Joshua Marcus写了一段可以在postfix中添加mysql映射类型的代码,从而我们可以将postfix查询的别名数据库等数据存储在mysql数据库中,让postfix进行mysql查询来得到结果。这样做将有助于提供postfix的运行效率, 有其对需要不断对映射数据的站点特别有用。

  1.为postfix添加识别mysql数据库映射的功能

Postfix中使用MySQL数据库

  a. 由于这段代码使用了mysql客户端库,所以我们必须安装mysql的开包。

  可以到www.redhat.com等linux相关站点下载mysql开发包,也可以从某些linux的资源光盘中取得mysql的开发包,如MySQL-client-3.22.30-1.i386.rpm。

  b. 安装该开发包:

  rpm -ivh MySQL-client-3.22.30-1.i386.rpm

  c. 下载postfix的源代码包,根据本章“3.1源代码包的安装”的提示进行

  安装,但是注意在执行make命令之前先执行以下命令:

  make -f Makefile.init makefiles ‘CCARGS=-DHAS_MYSQL -I /usr/include/mysql’

  ’AUXLIBS=/usr/lib/mysql/libmysqlclient.a -lm’

  5. 配置postfix使用mysql数据库映射

  我们以alias_maps进行说明。在main.cf中指定:

  alias_maps = mysql:/etc/postfix/mysql-aliases.cf

  6. 编辑mysql-aliases.cf

  #首先指定登录到mysql服务器的用户名和密码

  user = your_user_name

  password = your_password

  #连接的数据库名称

  dbname = your_database_name

  #查询的表名

  table = mytable

  #添加表的字段名称

  #forward_addr为转发地址

  #alias为别名数据

  select_field=forward_addr

  where_field=alias

  #添加附加的查询条件

  additional_conditions=and status=’paid’

  #指定要连接的MySQL服务器

  hosts=your.mysql.server

  这样,当发生一个查询的时候,postfix是以这样的SQL语句进行查询的:

  select forward_addr from mytable where alias=’$lookup’ and status=’paid’

  以上只是一个例子。在实际的运用中您可以指定多个mysql数据库,使用多个数据表格。

原文链接:https://77isp.com/post/9024.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。