我在mysql中有一个数据库,我想连接到它。我正在尝试使用 Python 中名为 MySQLdb 的模块。我为这个数据库(abc)创建了一个用户(称为abc)和密码(abc),该数据库有一个表并且连接正常(当我通过mysql命令行连接时)。
但是当我运行 python 脚本时,连接出现错误。 我的脚本是:
#!/usr/bin/python
import MySQLdb
# Open database connection
db = MySQLdb.connect("localhost","abc","abc","abc")
# prepare a cursor object using cursor() method
cursor = db.cursor()
# execute SQL query using execute() method.
cursor.execute("SELECT VERSION()")
# Fetch a single row using fetchone() method.
data = cursor.fetchone()
print "Database version : %s " % data
# disconnect from server
db.close()
我的错误是:
Traceback (most recent call last):
File "./test.py", line 8, in <module>
db = MySQLdb.connect("localhost","abc","abc","abc")
File "/usr/local/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", line 193, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1044, "Access denied for user 'abc'@'localhost' to database 'abc'")
出了什么问题?我的脚本或者我的mysql中的东西? 我将本地主机更改为 127.0.0.1(按照另一篇文章中的建议,但没有解决我的问题。
我还检查了这个 mysql 用户的权限:
SHOW GRANTS;
+------------------------------------------------------------------------------+
| Grants for abc@localhost |
+------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'abc'@'localhost' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, CREATE VIEW ON `abc`.* TO 'abc'@'localhost' |
+------------------------------------------------------------------------------+
最佳答案
您可能需要重新启动 mysql 守护程序才能使权限生效。或者使用flush特权
命令。 https://dev.mysql.com/doc/refman/5.7/en/privilege-changes.html
关于python - 使用 MySQLdb 模块连接到 mysql 数据库的问题 (python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42419561/