I'd put this in a wiki, but I'm not sure where there is a Turbogears
one.

Problem:  I want to use turbo gears, but my machine is setup with mysql
not bound to a network socket and I get the following errors when I try
to connect:
_mysql_exceptions.OperationalError: (2002, "Can't connect to local
MySQL server through socket '/tmp/mysql.sock' (2)");


Situation:  There is a practice of not binding MySQL to an ip address
and port following the principle that "if you're not connected, you are
protected."   In this situation, the server has a socket file.  By
default TurboGears (or SQLObject and the python MySQL driver/client to
be more exact) will look for the socket file in /tmp/mysql.sock.  Many
installations seem to use /var/lib/mysql/mysql.sock.  Therefore, to get
TurboGears to work, you'll need to specify the unix_socket (if on unix)
param in the dburi.

Format:
sqlobject.dburi="mysql://username:[EMAIL 
PROTECTED]/databasename?unix_socket=path-to-mysql.sock"

Example:
I have my socket file in /var/lib/mysql/mysql.sock and I want my user
foo with password bar to connect to my db test1.
sqlobject.dburi="mysql:/foo:[EMAIL 
PROTECTED]/test1?unix_socket=/var/lib/mysql/mysql.sock"

Hope this helps.

Reply via email to