0

I'm trying to configure dovecot on my server, and whenever I'm trying to connect, I'm getting this as the response in the /var/log/mail.log file.

Error cannot connect to database

This is the line I have in the /etc/dovecot/dovecot-sql.conf.ext file that contains the connect line.

connect = host=127.0.0.1 dbname=servermail user=mailadmin password='pass#12@FQ'

Even though I'm specifying to connect to mysql via 127.0.0.1, it's going to localhost in that log.

I verified, I can login to mysql via terminal myself using the command:

$ mysql -u mailadmin -h 127.0.0.1 -p

How to get this to work?

UPDATE:

This is the output of grants:

Database MySQL User Grants

1 Answers1

1

Thanks to @anx in the comments, I found the solution to this issue. Creating a new user is not necessary. The problem is that I had a special character in the configuration file.

connect = host=127.0.0.1 dbname=servermail user=mailadmin password='pass#12@FQ'

When I say like this, dovecot is trying to send the password as 'pass to the server.

The issue is because of the configuration file format. There is no escape character that I knew for this. So the parser of dovecot is reading the entire line and treating whatever that's coming after the # as the comment.

The actual solution was to change the password of the user in MySQL.