Thanks for your question. I liked setting up the environment to try and reproduce the error. You will be glad to hear that I do not think this is a difficult problem. However, I probably spent more time than I wanted to configure MongoDB, cyrus-sasl-md5 , parameter permissions, etc., When nothing is related to your problem, at least at first glance.
Your problem (and I'm 90% sure) is that either your saslauthd daemon saslauthd not working, or it is configured incorrectly. Let's look at the following:
Check service status . The output of service saslauthd status should be similar to mine pasted below. Pay attention to some key values, such as the location of the init script, /etc/init.d/saslauthd/ in my case; and the socket /var/run/saslauthd/mux , the same file location that you need to enter in the testsaslauthd [...] -f /var/run/saslauthd/mux .
root@hectorvp-pc :~
If the service is not running, simply start it with service saslauthd start and check the status ( service saslauthd status ) again to check for possible upstream errors.
Your ldap server is probably not running or not configured. You can view the status of the service as described above ( service slapd status ).
Please try this and tell us about the outcome.
EDIT (04/26/2016) . From the conversation in the comments of this answer, I took a few more steps. I apologize for the extensive conversation under the answer, here it is summarized:
Debugging saslauthd service . As indicated here , this service uses syslogs. In my case (Ubuntu) these logs are in /var/log/syslog , but they can be in /var/log/messages in your case. At least by default. Look at these logs while you are trying to start the service, and see if an error message appears that may give you additional information about the problem.
The error that appears in /var/logs/messages was: could not bind to socket : /var/run/saslauthd/mux , bind: address already in use .
We checked the mux socket using the file: file /var/run/saslauthd/mux , and the output indicates that it is a directory. It must be a socket . Then we uninstalled it and restarted the service. Now the service is running.