Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Accessing a XAMPP mysql via Python

Tags:

python

mysql

I'm attempting to use mysql after only having worked with sqlite in the past.

I've installed XAMPP on Linux (ubuntu) and have mysql up and running fine (seems like that with phpMyadmin at least). However, I'm having trouble getting the MySQLdb (the python lib) working {installed this using apt}. to be exact:


>>> import MySQLdb
>>> db = MySQLdb.connect(host="localhost",db="opfine")
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/lib/pymodules/python2.6/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 170, in __init_
  ...
    super(Connection, self).__init__(*args, **kwargs2)

OperationalError: (2002, "Can't connect to local MySQL server through socket '/var /run/mysqld/mysqld.sock' (2)")

I'm guessing

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock

means its expecting some sort of local installation (i.e. not within XAMPP), but I can't figure out how to go about modding this to get it to work with the XAMMP flavor of mysql.

Help is much appreciated!

like image 883
malangi Avatar asked Jul 21 '10 15:07

malangi


2 Answers

For the record (and thanks to a pointer from Igancio), I found that the below works (terrible I didn't think of this before):

db=MySQLdb.connect(
   user="root"
  ,passwd=""
  ,db="my_db"
  ,unix_socket="/opt/lampp/var/mysql/mysql.sock")
like image 157
malangi Avatar answered Oct 04 '22 10:10

malangi


It means that you didn't start the MySQL server, or it's configured to not use a domain socket.

like image 40
Ignacio Vazquez-Abrams Avatar answered Oct 04 '22 11:10

Ignacio Vazquez-Abrams