PDA

View Full Version : postfix courier-auth authmysql change mysql port


kasper22
27th July 2006, 05:32
Hi,

I'm hopping maybe someone can point out what I'm missing here. I'm running debian sarge and have packages postfix, courier-imap, authlib ... from testing. When I setup everything to run on mysql with the default port everything is great. However I would like to run mysql on port 3308.

It appears that something is wrong with the way I'm trying to tell everything to use a different port. It doesn't appear that I'm getting any errors from post fix, but If I try to authenicate I'm getting this error in my logs:

Jul 26 11:23:44 localhost imapd: authentication error: Input/output error
Jul 26 11:23:44 localhost authdaemond: failed to connect to mysql server (server=localhost, userid=mail_admin): Access denied for user: 'mail_admin@localhost' (Using password: YES)


I'm thinking that its still trying to use the default port, but I'm not finding something more spacific to see where the connection is trying to be made. Here are my config files, maybe you'll see something wrong with them?

authmysqlrc:
MYSQL_SERVER localhost
MYSQL_USERNAME mail_admin
MYSQL_PASSWORD <pw>
MYSQL_PORT 3308
MYSQL_DATABASE email
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD password
#MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
#MYSQL_NAME_FIELD
MYSQL_SOCKET /var/run/mysqld/mysqld.sock

smpt.conf
pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1:3308
sql_user: email_admin
sql_passwd: <pw>
sql_database: email
sql_select: select password from users where email = '%u'

/etc/pam.d/smtp:
auth required pam_mysql.so user=email_admin passwd=<pw> host=127.0.0.1:3308 db=email table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=email_admin passwd=<pw> host=127.0.0.1:3308 db=email table=users usercolumn=email passwdcolumn=password crypt=1

mysql_virtual_* (these all look basicly like this):
user = email_admin
password = <pw>
dbname = email
table = domains
select_field = 'virtual'
where_field = domain
hosts = 127.0.0.1:3308

I'd love to hear if I'm wrong on how I went about trying to set the port number somewhere.
Thanks
Bryan

falko
28th July 2006, 13:54
Did you restart all services?
What's the output of netstat -tap?

kasper22
29th July 2006, 03:12
Yep restarted all services. I know its mostlikly just something that isn't configured right.

Here is the output from netstat -tap:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:imaps *:* LISTEN -
tcp 0 0 *:pop3s *:* LISTEN -
tcp 0 0 localhost:3308 *:* LISTEN -
tcp 0 0 *:pop3 *:* LISTEN -
tcp 0 0 *:imap2 *:* LISTEN -
tcp 0 0 *:ssh *:* LISTEN -
tcp 0 0 *:smtp *:* LISTEN -
tcp 0 720 192.168.100.55:ssh 192.168.100.50:55980 ESTABLISHED-

falko
30th July 2006, 14:21
Looks ok. I think the problem might be the way you added the new MySQL port to the configuration files. Unfortunately I couldn't find any information about how to do it if you use another than the standard MySQL port... :(