Using ProFTPd with MySQL

The following is the configuration file I use to use ProFTPd with a MySQL backend.

ServerName "- Welcome to the Pengus.net FTP Server -"
ServerType standalone
DefaultServer on

DefaultRoot ~

ExtendedLog /var/log/proftpd
Port 21
Bind 127.0.0.1
#SocketBindTight On
Umask 022
MaxInstances 30
AllowStoreRestart on
AllowOverwrite on
DenyFilter \*.*/

User nobody
Group nogroup

SQLAuthTypes Crypt
SQLAuthenticate users* groups*
SQLConnectInfo database@host user password
SQLUserInfo ftp_users username passwd uid gid home shell
SQLGroupInfo ftp_groups groupname id username
SQLUserWhereClause "valid = 1"
SQLHomedirOnDemand on
#RequireValidShell off

SQLLog PASS updatelogin
SQLNamedQuery updatelogin UPDATE "count=count+1, lastlogin=NOW() WHERE username = \'%u\'" ftp_users

### Log trafic (STOR, RETR commands)
SQLLog RETR,STOR logtrafic
SQLNamedQuery logtrafic FREEFORM "INSERT INTO ftp_history (username, filename, transfertype, transfersize, transferhost, transfertime, transferdate) VALUES(\'%u\', \'%F\', \'%m\', %b, \'%a\', \'%T\', NOW())"

### Log user error events (ERR_* commands)
SQLLog ERR_* logevents
SQLNamedQuery logevents FREEFORM "INSERT INTO ftp_userevents (username, eventtype, description, eventdate) VALUES (\'%u\', \'%m\', \'%r\', NOW())"

AllowOverwrite on
RootLogin off

# Turn PAM auth off so we have no "rollback" if SQL fails
AuthPAM Off