Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQLdb模块(python)连接到mysql数据库的问题_Python_Mysql_Database - Fatal编程技术网

使用MySQLdb模块(python)连接到mysql数据库的问题

使用MySQLdb模块(python)连接到mysql数据库的问题,python,mysql,database,Python,Mysql,Database,我有一个mysql数据库,我想连接到它。我试图使用Python中名为MySQLdb的模块。我为这个数据库abc创建了一个名为abc和密码abc的用户,这个数据库abc有一个表,当我通过mysql命令行连接时,它正在连接ok 但是当我运行python脚本时,连接中出现了一个错误。 我的剧本是: #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","abc","ab

我有一个mysql数据库,我想连接到它。我试图使用Python中名为MySQLdb的模块。我为这个数据库abc创建了一个名为abc和密码abc的用户,这个数据库abc有一个表,当我通过mysql命令行连接时,它正在连接ok

但是当我运行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守护进程才能使特权生效。或者使用flush privileges命令

谢谢。我再次在mysql中创建了我的数据库,使用了flush,并且我还使用了一个额外的命令,这似乎很有帮助:grant usage on。到abc@localhost由“abc”标识;
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' |
+------------------------------------------------------------------------------+