Python MySQLdb – Ошибка 1045: доступ запрещен для пользователя

У меня есть код python, который похож на

import MySQLdb import sys try: con = MySQLdb.connect(host = 'localhost',user = 'crawler',passwd = 'crawler', db = 'real_estate_analytics') #... rest of code ... except MySQLdb.Error, e: print "Error %d: %s" % (e.args[0],e.args[1]) sys.exit(1) 

Проблема в том, что я получаю следующую ошибку:

Error 1045: Access denied for user 'crawler'@'localhost' (using password: YES)

Если я mysql на терминале mysql -u crawler -pcrawler я могу без проблем получить доступ к базам данных.

 mysql> show databases; +-----------------------+ | Database | +-----------------------+ | information_schema | | AL | | cloversoup | | codebar | | mysql | | performance_schema | | real_estate_analytics | | teste | +-----------------------+ 8 rows in set (0.00 sec) 

Я также удалил анонимного пользователя, чтобы избежать столкновений. Мои пользователи

 mysql> select user,host from mysql.user; +---------+-----------+ | user | host | +---------+-----------+ | root | % | | crawler | localhost | | root | localhost | +---------+-----------+ 3 rows in set (0.00 sec) 

Я предоставил все гранты искателям (и сброшенным привилегии), так что это не должно быть проблемой:

GRANT ALL PRIVILEGES ON *.* TO crawler@localhost IDENTIFIED BY 'crawler' WITH GRANT OPTION;

FLUSH PRIVILEGES;

Собственно говоря:

 mysql> show grants; +-------------------------------------------------------------------------------------------------------------------------------------------+ | Grants for crawler@localhost | +-------------------------------------------------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'crawler'@'localhost' IDENTIFIED BY PASSWORD '*A594DECC46D378FDA13D7843740CBF4985E6969B' WITH GRANT OPTION | +-------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) 

Я также пытался подключиться с помощью пользователя root , выполнив

con = MySQLdb.connect(host = 'localhost',user = 'root',passwd = 'my_root_password', db = 'real_estate_analytics')

но он не работает (одна и та же ошибка).

Эта вещь сводит меня с ума. Кто-нибудь знает, что может быть проблемой?

OBS: Я знаю, что на SO есть похожие вопросы, но я прочитал их все, и это не решило мою проблему. Вот почему я размещаю его здесь

  • Django Служит для загрузки файла
  • Программа пирамиды звездочек в Python
  • Любые «красивые» библиотеки визуализации данных для Python?
  • Анимированная 3d диаграмма рассеяния в matplotlib
  • Установка протокола не работает на Windows 7 Установка Cygwin
  • Python: Использование декораторов v / s mixins?
  • Как изменить питон от UCS2 до UCS4
  • Любая причина не использовать «+» для объединения двух строк?
  • One Solution collect form web for “Python MySQLdb – Ошибка 1045: доступ запрещен для пользователя”

    «localhost» всегда был и всегда был особенным с MySQL . В вашем случае вы предоставляете crawler @ localhost некоторые привилегии, и это будет означать «искатель пользователя, подключающийся через UNIX-сокет». И, я уверен, что сервер MySQL настроен на -skip-networking .

    Это можно зафиксировать, будучи явным. Используя аргумент подключения unix_socket вашего драйвера базы данных, он заставит использовать UNIX-сокет. (Бесстыдно связывание с документами MySQL Connector / Python, поскольку я являюсь разработчиком этого драйвера).

    Python - лучший язык программирования в мире.