Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / README_FILES / MYSQL_README
blob7639bf36eb3bac45eb5bd2d207fa83372546a065
1 P\bPo\bos\bst\btf\bfi\bix\bx M\bMy\byS\bSQ\bQL\bL H\bHo\bow\bwt\bto\bo
3 -------------------------------------------------------------------------------
5 I\bIn\bnt\btr\bro\bod\bdu\buc\bct\bti\bio\bon\bn
7 The Postfix mysql map type allows you to hook up Postfix to a MySQL database.
8 This implementation allows for multiple mysql databases: you can use one for a
9 virtual(5) table, one for an access(5) table, and one for an aliases(5) table
10 if you want. You can specify multiple servers for the same database, so that
11 Postfix can switch to a good database server if one goes bad.
13 Busy mail servers using mysql maps will generate lots of concurrent mysql
14 clients, so the mysql server(s) should be run with this fact in mind. You can
15 reduce the number of concurrent mysql clients by using the Postfix proxymap(8)
16 service.
18 B\bBu\bui\bil\bld\bdi\bin\bng\bg P\bPo\bos\bst\btf\bfi\bix\bx w\bwi\bit\bth\bh M\bMy\byS\bSQ\bQL\bL s\bsu\bup\bpp\bpo\bor\brt\bt
20 These instructions assume that you build Postfix from source code as described
21 in the INSTALL document. Some modification may be required if you build Postfix
22 from a vendor-specific source package.
24 Note: to use mysql with Debian GNU/Linux's Postfix, all you need is to install
25 the postfix-mysql package and you're done. There is no need to recompile
26 Postfix.
28 The Postfix MySQL client utilizes the mysql client library, which can be
29 obtained from:
31     http://www.mysql.com/downloads/
32     http://sourceforge.net/projects/mysql/
34 In order to build Postfix with mysql map support, you will need to add -
35 DHAS_MYSQL and -I for the directory containing the mysql headers, and the
36 mysqlclient library (and libm) to AUXLIBS, for example:
38     make -f Makefile.init makefiles \
39         'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
40         'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
42 On Solaris, use this instead:
44     make -f Makefile.init makefiles \
45         'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \
46         'AUXLIBS=-L/usr/local/mysql/lib -R/usr/local/mysql/lib \
47             -lmysqlclient -lz -lm'
49 Then, just run 'make'. This requires libz, the compression library. Older mysql
50 implementations build without libz.
52 U\bUs\bsi\bin\bng\bg M\bMy\byS\bSQ\bQL\bL t\bta\bab\bbl\ble\bes\bs
54 Once Postfix is built with mysql support, you can specify a map type in main.cf
55 like this:
57     alias_maps = mysql:/etc/postfix/mysql-aliases.cf
59 The file /etc/postfix/mysql-aliases.cf specifies lots of information telling
60 Postfix how to reference the mysql database. For a complete description, see
61 the mysql_table(5) manual page.
63 E\bEx\bxa\bam\bmp\bpl\ble\be:\b: l\blo\boc\bca\bal\bl a\bal\bli\bia\bas\bse\bes\bs
66 # mysql config file for local(8) aliases(5) lookups
69 # The user name and password to log into the mysql server.
70 user = someone
71 password = some_password
73 # The database name on the servers.
74 dbname = customer_database
76 # For Postfix 2.2 and later The SQL query template.
77 # See mysql_table(5) for details.
78 query = SELECT forw_addr FROM mxaliases WHERE alias='%s' AND status='paid'
80 # For Postfix releases prior to 2.2. See mysql_table(5) for details.
81 select_field = forw_addr
82 table = mxaliases
83 where_field = alias
84 # Don't forget the leading "AND"!
85 additional_conditions = AND status = 'paid'
87 A\bAd\bdd\bdi\bit\bti\bio\bon\bna\bal\bl n\bno\bot\bte\bes\bs
89 The MySQL configuration interface setup allows for multiple mysql databases:
90 you can use one for a virtual table, one for an access table, and one for an
91 aliases table if you want.
93 Since sites that have a need for multiple mail exchangers may enjoy the
94 convenience of using a networked mailer database, but do not want to introduce
95 a single point of failure to their system, we've included the ability to have
96 Postfix reference multiple hosts for access to a single mysql map. This will
97 work if sites set up mirrored mysql databases on two or more hosts. Whenever
98 queries fail with an error at one host, the rest of the hosts will be tried in
99 random order. If no mysql server hosts are reachable, then mail will be
100 deferred until at least one of those hosts is reachable.
102 C\bCr\bre\bed\bdi\bit\bts\bs
104   * The initial version was contributed by Scott Cotton and Joshua Marcus, IC
105     Group, Inc.
106   * Liviu Daia revised the configuration interface and added the main.cf
107     configuration feature.
108   * Liviu Daia with further refinements from Jose Luis Tallon and Victor
109     Duchovni developed the common query, result_format, domain and
110     expansion_limit interface for LDAP, MySQL and PosgreSQL.