3

我正在尝试将 python 与 MySQL 连接,但出现此错误:

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

我试图解决它 6 个小时,但我失败了。谁能帮帮我吗 ?

4

5 回答 5

1

这意味着您忘记了密码参数,这在 mysql 中是不需要的。

从 Unix 命令行:

$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
$ mysql -u root -p
Enter password: 
<typing password>
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 47
Server version: 5.1.37-1ubuntu5.5 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

与从 python 记录不完全相同,

但这是相同的错误,并且很可能意味着在您的情况下,密码参数根本没有进入 mysql。

当我输入错误的密码时,我在命令行上得到一个非常不同的错误:

$ mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
于 2011-04-15T20:56:46.677 回答
0

你没有指定你的root密码。如果您从远程计算机访问 mysql... root 用户默认仅限于 localhost 连接。尝试运行它以启用从任何​​地方的访问:

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "YOUR_ROOT_PASSWORD";
FLUSH PRIVILEGES;

还要检查您的防火墙设置。

于 2011-04-15T20:54:21.750 回答
0
import MySQLdb

cxn = MySQLdb.connect(host = 'localhost',user = 'root',passwd = 'password', db = 'yourdatabase')

所以你需要知道你的密码是什么,并且你需要创建一个数据库:

CREATE DATABASE yourdatabase;

如上所述,从 mysql 命令行。

于 2011-04-15T21:13:03.520 回答
0

如果您在执行此操作时在密码列前面没有看到任何值

SELECT user, host, password FROM mysql.user;

在你的 mysql 中

在你的 python 脚本中不要指定密码

例如

import MySQLdb

db = MySQLdb.connect(host="localhost",    # your host, usually localhost
                     user="root",         # your username
                     passwd="",           # your password
                     db="dynamo",
                     port = 3306)         # name of the data base

# you must create a Cursor object. It will let
#  you execute all the queries you need
cur = db.cursor()

# Use all the SQL you like
cur.execute("select * from SomeTable limit 10")

# print all the first cell of all the rows
for row in cur.fetchall():
    print(row[0])

db.close()
于 2018-11-22T10:19:57.597 回答
0

我收到此错误是因为我的配置文件中有引号。

[mysql]
username: 'uuuu'
password: 'pppp'
host: 'localhost'
database: 'dddd'

本来应该

[mysql]
username: uuuu
password: pppp
host: localhost
database: dddd
于 2016-11-20T07:23:34.063 回答