This documentation is for Dovecot v1.x, see wiki2 for v2.x documentation.
Differences between revisions 7 and 8
Revision 7 as of 2006-09-22 14:21:14
Size: 917
Editor: TimoSirainen
Comment:
Revision 8 as of 2006-10-13 21:40:33
Size: 812
Editor: TimoSirainen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
== Multiple definition of sha1_result == 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 5: Line 5:
Quick solution: Change all sha1_result functions in Dovecot source tree to dovecot_sha1_result or something. For example: {{{
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:
Line 12: Line 16:
More permanent solution: It's a [http://bugs.mysql.com/bug.php?id=13944 MySQL bug]. Upgrade to MySQL 4.1.18 / 5.0.19 when they're out.

== Access denied ==

If Dovecot can't connect to MySQL but your password is correct, store the password to MySQL with OLD_PASSWORD() function instead of PASSWORD().

[http://www.dovecot.org/list/dovecot/2005-November/010000.html More information here.]

Since the exact same connection code works in simple test programs, this problem probably has something to do with conflicting symbols between Dovecot and MySQL library. I haven't been able to find what exactly causes it though.
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.

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.

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