Python MySQLdb - Fehler 1045: Zugriff für Benutzer verweigert
Ich habe einen Python-Code, der so aussieht
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)
Das Problem ist, dass ich den folgenden Fehler erhalte:
Error 1045: Access denied for user 'crawler'@'localhost' (using password: YES)
Wenn ich auf dem Terminal mysqlmysql -u crawler -pcrawler
Ich kann problemlos auf die Datenbanken zugreifen.
mysql> show databases;
+-----------------------+
| Database |
+-----------------------+
| information_schema |
| AL |
| cloversoup |
| codebar |
| mysql |
| performance_schema |
| real_estate_analytics |
| teste |
+-----------------------+
8 rows in set (0.00 sec)
Ich habe auch den anonymen Benutzer gelöscht, um Kollisionen zu vermeiden. Meine Benutzer sind
mysql> select user,host from mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| root | % |
| crawler | localhost |
| root | localhost |
+---------+-----------+
3 rows in set (0.00 sec)
Ich habe allen Crawlern (und gelöschten Privilegien) alle Bewilligungen gegeben, so dass dies nicht das Problem sein sollte:
GRANT ALL PRIVILEGES ON *.* TO crawler@localhost IDENTIFIED BY 'crawler' WITH GRANT OPTION;
FLUSH PRIVILEGES;
in der Tat:
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)
Ich habe auch versucht, eine Verbindung über das herzustellenroot
Benutzer, indem Sie tun
con = MySQLdb.connect(host = 'localhost',user = 'root',passwd = 'my_root_password', db = 'real_estate_analytics')
aber es funktioniert auch nicht (gleicher Fehler).
Dieses Ding macht mich verrückt. Hat jemand einen Einblick was das Problem sein könnte?
OBS: Ich weiß, dass es ähnliche Fragen zu SO gibt, aber ich habe sie alle gelesen und mein Problem damit nicht gelöst. Deshalb poste ich es hier