Guru Prakash S
Guru Prakash S

Reputation: 413

MySQLdb in Python: "Can't connect to MySQL server on 'localhost'"

I have installed MySQLdb for Python and I am able to import MySQLdb. Now I try to connect to the MySQL Community Server on my local machine, using this code:

db=MySQLdb.connect(
    host="localhost",
    user="br_admin",
    passwd="blabla",
    db="br_brain"
)

This code fails with this error:

Traceback (most recent call last):
  File "<pyshell#22>", line 5, in <module>
  db="brainse_brain"
File "C:\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")

How do I resolve this error?

Upvotes: 28

Views: 107310

Answers (7)

Sanjar
Sanjar

Reputation: 1

 - DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',
           'NAME': 'dataflair',
           'USER':'root',
           'PASSWORD':'',
           'HOST':'127.0.0.1',
           'PORT':'3306',
           'OPTIONS':{
       'init_command':"SET sql_mode=STRICT_TRANS_TABLES" }

Upvotes: 0

Sandeep Amarnath
Sandeep Amarnath

Reputation: 6917

1.Go to MySQL workbench
2.On the task bar above, click on server->and then click on Startup/Shutdown
3.On the screen, click on Start the server and you will get logs of server starting and running

Upvotes: 0

Saher Ahwal
Saher Ahwal

Reputation: 9237

If you are using windows you should specify the IP to "127.0.0.1", using "localhost" will give you that error 2003. On Ubuntu I had no problem.

Upvotes: 2

dinesh.kumar
dinesh.kumar

Reputation: 168

This will work fine :

    db = MySQLdb.connect(host="127.0.0.1",user="db_username",passwd="db_password",db="db_name") 

or

   db=  MySQLdb.connect("127.0.0.1","db_username","db_password","db_name")

Upvotes: 3

pius
pius

Reputation: 21

In Windows 32, if you set host as 127.0.01 it gives the down error:

OperationalError: (2005, "Unknown MySQL server host '127.0.01' (0)")

But if you set host as 127.0.0.1 then you get no error.

Upvotes: 2

chirag ghiyad
chirag ghiyad

Reputation: 700

Make sure to provide the proper host and port:

'default': {
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'yourdbname',                      
    'USER': 'root',                      
    'PASSWORD': 'your password',         
    'HOST': '127.0.0.1',                 
    'PORT': '3306',                      
},

This is my settings.py file config for my django app.

Same for you please take host "127.0.0.1" and port "3306".

This might solve your problem. And for python idle I've tested like...

>>> import MySQLdb
>>> Con = MySQLdb.Connect(host="127.0.0.1", port=3306, user="yoruname", passwd="yourpwd", db="test")
>>> Cursor = Con.cursor()
>>> sql = "SELECT * FROM test.testing"
>>> Cursor.execute(sql)
2L

Upvotes: 41

user2112920
user2112920

Reputation: 61

I had the same trouble too, I'm working on a Windows of 64 bits, and the solution just was changing the host variable value. I had set "localhost" when the correct value have to be "127.0.0.1". However, when I'm working on Windows of 32 bits. I can set "localhost" or "127.0.0.1" in the host variable value and no matter, my django's project runs perfectly.

Upvotes: 6

Related Questions