from http://groups.google.com/group/web2py/browse_thread/thread/80ebf55611335288?pli=1 Wow, I figured out how to make it work. In DAL.py I added the unix_socket arg to the MySQLAdapter: driver_args.update(dict(db=db, user=credential_decoder(user), passwd=credential_decoder(password), host=host, port=port, charset=charset, unix_socket='/tmp/mysql.sock')) And if you are on MAMP, the socket is actually located at /Applications/MAMP/tmp/mysql/mysql.sock so you can either set to that or put in a symbolic link. It does not appear that many people shared this problem but perhaps it merits inclusion? Something like: db = DAL('mysql://user:password@localhost/test', mysql_socket='/tmp/mysql.sock')