postfix w/ courier authdaemon+authmysqldaemon error

Kelly Prescott kprescott at coolip.net
Thu Aug 25 22:18:47 EDT 2016


Juan, as this is OT, I will email you off-list to continue helping you with this issue.
Kp




-----Original Message-----
From: Speakup [mailto:speakup-bounces at linux-speakup.org] On Behalf Of Juan Hernandez
Sent: Thursday, August 25, 2016 6:36 PM
To: 'Speakup is a screen review system for Linux.' <speakup at linux-speakup.org>
Subject: RE: postfix w/ courier authdaemon+authmysqldaemon error

Let me paste below:

##VERSION: $Id: authmysqlrc 17 2011-04-04 02:07:37Z mrsam $ # # Copyright 2000-2007 Double Precision, Inc.  See COPYING for # distribution information.
#
# Do not alter lines that begin with ##, they are used when upgrading # this configuration.
#
# authmysqlrc created from authmysqlrc.dist by sysconftool # # DO NOT INSTALL THIS FILE with world read permissions.  This file # might contain the MySQL admin password!
#
# Each line in this file must follow the following format:
#
# field[spaces|tabs]value
#
# That is, the name of the field, followed by spaces or tabs, followed by # field value.  Trailing spaces are prohibited.


##NAME: LOCATION:0
#
# The server name, userid, and password used to log in.

MYSQL_SERVER 127.0.0.1	
MYSQL_USERNAME		postfix
MYSQL_PASSWORD my_password

##NAME: SSLINFO:0
#
# The SSL information.
#
# To use SSL-encrypted connections, define the following variables (available # in MySQL 4.0, or higher):
#
#
# MYSQL_SSL_KEY        /path/to/file
# MYSQL_SSL_CERT       /path/to/file
# MYSQL_SSL_CACERT     /path/to/file
# MYSQL_SSL_CAPATH     /path/to/file
# MYSQL_SSL_CIPHERS    ALL:!DES

##NAME: MYSQL_SOCKET:0
#
# MYSQL_SOCKET can be used with MySQL version 3.22 or later, it specifies the # filesystem pipe used for the connection #
# MYSQL_SOCKET		/var/run/mysqld/mysqld.sock

##NAME: MYSQL_PORT:0
#
# MYSQL_PORT can be used with MySQL version 3.22 or later to specify a port to # connect to.

MYSQL_PORT		0

##NAME: MYSQL_OPT:0
#
# Leave MYSQL_OPT as 0, unless you know what you're doing.

MYSQL_OPT		0

##NAME: MYSQL_DATABASE:0
#
# The name of the MySQL database we will open:

MYSQL_DATABASE	pfdatabase	

#NAME: MYSQL_CHARACTER_SET:0
#
# This is optional. MYSQL_CHARACTER_SET installs a character set. This option # can be used with  MySQL version 4.1 or later. MySQL supports 70+ collations # for 30+ character sets. See MySQL documentations for more detalis.
#
# MYSQL_CHARACTER_SET latin1

##NAME: MYSQL_USER_TABLE:0
#
# The name of the table containing your user data.  See README.authmysqlrc # for the required fields in this table. 

MYSQL_USER_TABLE	mailbox

##NAME: MYSQL_CRYPT_PWFIELD:0
#
# Either MYSQL_CRYPT_PWFIELD or MYSQL_CLEAR_PWFIELD must be defined.  Both # are OK too. crypted passwords go into MYSQL_CRYPT_PWFIELD, cleartext # passwords go into MYSQL_CLEAR_PWFIELD.  Cleartext passwords allow # CRAM-MD5 authentication to be implemented.

# MYSQL_CRYPT_PWFIELD	password

##NAME: MYSQL_CLEAR_PWFIELD:0
#
#
#  MYSQL_CLEAR_PWFIELD	password

##NAME: MYSQL_DEFAULT_DOMAIN:0
#
# If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user', # we will look up 'user at DEFAULT_DOMAIN' instead.
#
#
# DEFAULT_DOMAIN		example.com

##NAME: MYSQL_UID_FIELD:0
#
# Other fields in the mysql table:
#
# MYSQL_UID_FIELD - contains the numerical userid of the account #
MYSQL_UID_FIELD		5000

##NAME: MYSQL_GID_FIELD:0
#
# Numerical groupid of the account

MYSQL_GID_FIELD		5000

##NAME: MYSQL_LOGIN_FIELD:0
#
# The login id, default is id.  Basically the query is:
#
#  SELECT MYSQL_UID_FIELD, MYSQL_GID_FIELD, ... WHERE id='loginid'
#

MYSQL_LOGIN_FIELD	username

##NAME: MYSQL_HOME_FIELD:0
#

MYSQL_HOME_FIELD	/home/vmail

##NAME: MYSQL_NAME_FIELD:0
#
# The user's name (optional)

MYSQL_NAME_FIELD	name

##NAME: MYSQL_MAILDIR_FIELD:0
#
# This is an optional field, and can be used to specify an arbitrary # location of the maildir for the account, which normally defaults to # $HOME/Maildir (where $HOME is read from MYSQL_HOME_FIELD).
#
# You still need to provide a MYSQL_HOME_FIELD, even if you uncomment this # out.
#
 MYSQL_MAILDIR_FIELD	maildir

##NAME: MYSQL_DEFAULTDELIVERY:0
#
# Courier mail server only: optional field specifies custom mail delivery # instructions for this account (if defined) -- essentially overrides # DEFAULTDELIVERY from ${sysconfdir}/courierd # # MYSQL_DEFAULTDELIVERY defaultdelivery

##NAME: MYSQL_QUOTA_FIELD:0
#
# Define MYSQL_QUOTA_FIELD to be the name of the field that can optionally # specify a maildir quota.  See README.maildirquota for more information #
 MYSQL_QUOTA_FIELD	concat(quota,'S')

##NAME: MYSQL_AUXOPTIONS:0
#
# Auxiliary options.  The MYSQL_AUXOPTIONS field should be a char field that # contains a single string consisting of comma-separated "ATTRIBUTE=NAME"
# pairs.  These names are additional attributes that define various per-account # "options", as given in INSTALL's description of the "Account OPTIONS"
# setting.
#
# MYSQL_AUXOPTIONS_FIELD	auxoptions
#
# You might want to try something like this, if you'd like to use a bunch # of individual fields, instead of a single text blob:
#
# MYSQL_AUXOPTIONS_FIELD	CONCAT("disableimap=",disableimap,",disablepop3=",disablepop3,",disablewebmail=",disablewebmail,",sharedgroup=",sharedgroup)
#
# This will let you define fields called "disableimap", etc, with the end result # being something that the OPTIONS parser understands.


##NAME: MYSQL_WHERE_CLAUSE:0
#
# This is optional, MYSQL_WHERE_CLAUSE can be basically set to an arbitrary # fixed string that is appended to the WHERE clause of our query #
 MYSQL_WHERE_CLAUSE	enabled=1

##NAME: MYSQL_SELECT_CLAUSE:0
#
# (EXPERIMENTAL)
# This is optional, MYSQL_SELECT_CLAUSE can be set when you have a database, # which is structuraly different from proposed. The fixed string will # be used to do a SELECT operation on database, which should return fields # in order specified bellow:
#
# username, cryptpw, clearpw, uid, gid, home, maildir, quota, fullname, options # # The username field should include the domain (see example below).
#
# Enabling this option causes ignorance of any other field-related # options, excluding default domain.
#
# There are two variables, which you can use. Substitution will be made # for them, so you can put entered username (local part) and domain name # in the right place of your query. These variables are:
#	 	$(local_part), $(domain), $(service)
#
# If a $(domain) is empty (not given by the remote user) the default domain # name is used in its place.
#
# $(service) will expand out to the service being authenticated: imap, imaps, # pop3 or pop3s.  Courier mail server only: service will also expand out to # "courier", when searching for local mail account's location.  In this case, # if the "maildir" field is not empty it will be used in place of # DEFAULTDELIVERY.  Courier mail server will also use esmtp when doing # authenticated ESMTP.
#
# This example is a little bit modified adaptation of vmail-sql # database scheme:
#
# MYSQL_SELECT_CLAUSE	SELECT CONCAT(popbox.local_part, '@', popbox.domain_name),			\
#			CONCAT('{MD5}', popbox.password_hash),		\
#			popbox.clearpw,					\
#			domain.uid,					\
#			domain.gid,					\
#			CONCAT(domain.path, '/', popbox.mbox_name),	\
#			'',						\
#			domain.quota,					\
#			'',						\
#			CONCAT("disableimap=",disableimap,",disablepop3=",    \
#                              disablepop3,",disablewebmail=",disablewebmail, \
#                              ",sharedgroup=",sharedgroup)             \
#			FROM popbox, domain				\
#			WHERE popbox.local_part = '$(local_part)'	\
#			AND popbox.domain_name = '$(domain)'		\
#			AND popbox.domain_name = domain.domain_name


##NAME: MYSQL_ENUMERATE_CLAUSE:1
#
# {EXPERIMENTAL}
# Optional custom SQL query used to enumerate accounts for authenumerate, # in order to compile a list of accounts for shared folders.  The query # should return the following fields: name, uid, gid, homedir, maildir, options # # Example:
# MYSQL_ENUMERATE_CLAUSE	SELECT CONCAT(popbox.local_part, '@', popbox.domain_name),			\
#			domain.uid,					\
#			domain.gid,					\
#			CONCAT(domain.path, '/', popbox.mbox_name),	\
#			'',						\
#			CONCAT('sharedgroup=', sharedgroup)		\
#			FROM popbox, domain				\
#			WHERE popbox.local_part = '$(local_part)'	\
#			AND popbox.domain_name = '$(domain)'		\
#			AND popbox.domain_name = domain.domain_name



##NAME: MYSQL_CHPASS_CLAUSE:0
#
# (EXPERIMENTAL)
# This is optional, MYSQL_CHPASS_CLAUSE can be set when you have a database, # which is structuraly different from proposed. The fixed string will # be used to do an UPDATE operation on database. In other words, it is # used, when changing password.
#
# There are four variables, which you can use. Substitution will be made # for them, so you can put entered username (local part) and domain name # in the right place of your query. There variables are:
# 	$(local_part) , $(domain) , $(newpass) , $(newpass_crypt)
#
# If a $(domain) is empty (not given by the remote user) the default domain # name is used in its place.
# $(newpass) contains plain password
# $(newpass_crypt) contains its crypted form #
# MYSQL_CHPASS_CLAUSE	UPDATE	popbox					\
#			SET	clearpw='$(newpass)',			\
#				password_hash='$(newpass_crypt)'	\
#			WHERE	local_part='$(local_part)'		\
#			AND	domain_name='$(domain)'
#

Juan Hernandez
Juanhernandez98 at gmail.com
619-750-9431 (M)         |  858-777-3311 (F)
My WebSite | Twitter | FaceBook | LinkedIn

-----Original Message-----
From: Speakup [mailto:speakup-bounces at linux-speakup.org] On Behalf Of Kelly Prescott
Sent: Thursday, August 25, 2016 4:17 PM
To: 'Speakup is a screen review system for Linux.' <speakup at linux-speakup.org>
Subject: RE: postfix w/ courier authdaemon+authmysqldaemon error

What is the contents of your authdaemon config file?
It sounds like your table or database defines are not correct.
Kp


-----Original Message-----
From: Speakup [mailto:speakup-bounces at linux-speakup.org] On Behalf Of Juan Hernandez
Sent: Thursday, August 25, 2016 6:12 PM
To: 'Speakup is a screen review system for Linux.' <speakup at linux-speakup.org>
Subject: postfix w/ courier authdaemon+authmysqldaemon error

Hello All,

I am about ready to drop my server off a cliff.

I am trying to find out why my imap server courier-imap will not authenticate.

I am using authmysqldaemon for authentication for mysql.

I've configured my authmysqldaemonrc file properly.

I am getting an error about mysql_select_db(postfix.) is an incorrect database name.

I don't know what is going on.  I see that in the error that it says the database 'postfix.' Is incorrect.  Why is it putting a dot after the db name? I've checked my config files and I just can't seem to figure this out.

Below is my mail.err file, the last few entries.

Aug 25 17:47:09 hermes authdaemond: authmysql: mysql_select_db(postfix.) error: Incorrect database name 'postfix.'

I get the above error everytime I try and login via imap with one of the accounts.

Thanks for any help.


_______________________________________________
Speakup mailing list
Speakup at linux-speakup.org
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup

_______________________________________________
Speakup mailing list
Speakup at linux-speakup.org
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup

_______________________________________________
Speakup mailing list
Speakup at linux-speakup.org
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup



More information about the Speakup mailing list