OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

我使用 Scrapy 和 wnat 将数据插入我的数据库。

在我的 database.py 我有

def __init__(self, host='', user='', password='', database=''):
    self.__host     = 'localhost'
    self.__user     = 'root'
    self.__password = 'mypass'
    self.__database = 'drive'
## End def __init__

def __open(self):
    try:
cnx = MySQLdb.connect(self.__host, self.__user, self.__password, self.__database, port="3308")
self.__connection = cnx
self.__session    = cnx.cursor()

除了 MySQLdb.Error 作为 e: print "\033[31mError %d: %s3[0m" % (e.args[0],e.args1)

当我想用

连接到mysql时在管理器中
    self.mysql = MysqlPython(self.host, self.user, self.password, self.db)
    self.connection = MySQLdb.connect(self.host, self.user, self.password, self.db)
    self.cursor = self.connection.cursor()

我有这个错误:

OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

我读了这个 question and this one 但我已经遇到同样的错误,我无法访问我的数据库

尝试在末尾添加授权选项:

GRANT all privileges on dbx.* to 'x'@'localhost' IDENTIFIED BY 'x' WITH GRANT OPTION;

检查您是否正确设置了 root 密码,但请记住您可以重置密码。

要事第一。

停止mysql服务器

sudo /etc/init.d/mysql stop

以 root 身份登录并停止 mysql 守护进程。现在让我们启动 mysql 守护进程并跳过存储密码的授权表。

mysqld_safe --skip-grant-tables &

您应该会看到 mysqld 成功启动。如果没有,那么你有更大的问题。现在您应该可以在没有密码的情况下连接到 mysql。

mysql -u root mysql

update user set Password=PASSWORD('new-password') where user='root';
flush privileges;

exit;

had same issue ,changed connector and it worked for me, but first install the module

$ pip install mysql-connector-python

import mysql.connector
cnx = mysql.connector.connect(user='root', password='psw', host='127.0.0.1', database='db')