This documentation is for Dovecot v1.x, see wiki2 for v2.x documentation.
Differences between revisions 1 and 11 (spanning 10 versions)
Revision 1 as of 2005-12-27 22:26:12
Size: 585
Editor: TimoSirainen
Comment:
Revision 11 as of 2011-08-05 19:58:07
Size: 1102
Editor: 116
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
== Multiple definition of `sha1_result ==

Quick solution: Change all sha1_result functions in Dovecot source tree to dovecot_sha1_result or something. For example:
If you use MySQL version older than 4.1.18, or in 5.x series older than 5.0.19, there's a problem with conflicting symbols. Either the linking fails completely, or Dovecot can't log in:
Line 8: Line 6:
zsh
cd dovecot
perl -i -pe 's/sha1_result/dovecot_sha1_result/' **/*.[ch]
dovecot: Oct 14 01:02:22 Error: auth-worker(default): mysql: Connect failed to localhost (db): Access denied for user 'user'@'localhost' (using password: YES) - waiting for 1 seconds before retry
Line 13: Line 9:
More permanent solution: It's a [http://bugs.mysql.com/bug.php?id=13944 MySQL bug]. Try to get them fixed. They both have the same root reason: Conflicing `sha1_result` symbol. Either upgrade to newer MySQL library, or modify Dovecot sources:
Line 15: Line 11:
== Access denied == {{{
cd dovecot
perl -i -pe 's/sha1_result/dovecot_sha1_result/' `find . -name '*.[ch]'`
}}}
Line 17: Line 16:
Store the password to MySQL with OLD_PASSWORD() function instead of PASSWORD(). Another solution to "access denied" is to use OLD_PASSWORD() function to set the password in MySQL. This works because it doesn't use the SHA1 functions.
Line 19: Line 18:
[http://www.dovecot.org/list/dovecot/2005-November/010000.html More information here.] Note that this is also [[http://www.dovecot.org/list/dovecot-cvs/2006-October/006519.html|fixed in Dovecot 1.0rc9 and later]].

Also, see also [[http://www.runmapglobal.com/blog/howto-set-up-a-mysql-cluster-for-two-servers-three-servers-required-for-true-redundancy/ | MySQL Servers]]

MySQL Problems

If you use MySQL version older than 4.1.18, or in 5.x series older than 5.0.19, there's a problem with conflicting symbols. Either the linking fails completely, or Dovecot can't log in:

dovecot: Oct 14 01:02:22 Error: auth-worker(default): mysql: Connect failed to localhost (db): Access denied for user 'user'@'localhost' (using password: YES) - waiting for 1 seconds before retry

They both have the same root reason: Conflicing sha1_result symbol. Either upgrade to newer MySQL library, or modify Dovecot sources:

cd dovecot
perl -i -pe 's/sha1_result/dovecot_sha1_result/' `find . -name '*.[ch]'`

Another solution to "access denied" is to use OLD_PASSWORD() function to set the password in MySQL. This works because it doesn't use the SHA1 functions.

Note that this is also fixed in Dovecot 1.0rc9 and later.

Also, see also MySQL Servers

None: MysqlProblems (last edited 2011-08-23 19:32:20 by TimoSirainen)