[Dovecot] overriding userdb connection host for doveadm-user

Timo Sirainen tss at iki.fi
Thu Dec 8 06:22:58 EET 2011


On Wed, 2011-12-07 at 13:02 -0500, Micah Anderson wrote:
> I've got my users in a replicated database setup and dovecot configured
> with two connect lines in dovecot-sql.conf:
> 
> connect = host=127.0.0.1 port=3306 dbname=users user=user password=pass
> connect = host=127.0.0.2 port=3306 dbname=users user=user password=pass
> 
> this works really well to help balance the load. 

If you actually have it like that, it should only be using 127.0.0.2, as
the second connect setting overrides the first one.. The right way would
have been:

connect = host=127.0.0.1 host=127.0.0.2 port=...

> I would like a way to see if the new user's information has been
> replicated yet before sending the email. I was thinking I could use
> 'doveadm user' to lookup the user, but I am not sure that I can specify
> one of the specific 'connect' lines in my configuration to check. Is
> there a way to override that configuration variable to do this test? I
> tried various incarnations of passing '-o connect=host='... but doveadm
> user would just ignore them.

doveadm does the lookup via auth-userdb socket. You have two
possibilities:

a) Have doveadm use another auth-userdb socket that points to another
dovecot installation with different configuration.

b) Use a different userdb configuration for doveadm:

protocol !doveadm {
  userdb {
    driver = sql
    args = /.../dovecot-sql.conf.ext
  }
}
protocol doveadm {
  userdb {
    driver = sql
    args = /.../dovecot-sql-slave.conf.ext
  }
}





More information about the dovecot mailing list