Python 操作错误:(1045,“拒绝用户和根用户和本地主机的访问”(使用密码:YES)";)

Python 操作错误:(1045,“拒绝用户和根用户和本地主机的访问”(使用密码:YES)";),python,mysql,xampp,scrapy,mysql-error-1045,Python,Mysql,Xampp,Scrapy,Mysql Error 1045,我使用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__

我使用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。错误为e: 打印“\033[31错误%d:%s\033[0m%”(e.args[0],e.args)

当我想用

    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)")
我读了这篇文章,但我已经有了相同的eror,我无法访问我的数据库


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

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

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

mysql -u root mysql

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

exit;
第一件事

停止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;
也有同样的问题,更换了连接器,它对我有效,但首先安装模块

$pip安装mysql连接器python

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

我在我的问题中添加了一张照片,请检查一下。我得到了这个错误:mysqld_safe——跳过grant tables 2016-05-30T15:22:14.6NZ mysqld_safe登录到“/usr/local/var/mysql/pc-2.home.err”。2016-05-30T15:22:14.6NZ mysqld_safe从/usr/local/var/mysql/usr/local/bin/mysqld_safe:135行:/usr/local/var/mysql/pc-2启动mysqld守护程序.home.err:Permission denied rm:/tmp/mysql.sock:Permission denied/usr/local/bin/mysqld_safe:169行您使用sudo启动了吗?很抱歉,我忘记了您需要停止mysql服务器的注释“sudo/etc/init.d/mysql stop”。我编辑了我的解决方案,因为有代码错误。现在可以找到您的mysql安装位置或mysql服务器管理并停止服务器。我不知道其他操作系统中的位置。您的操作系统是什么?