无法让Python3 - MySQLdb连接器在16.04中工作

时间:2017-12-28 19:32:36

标签: mysql python-3.x ubuntu mysql-python

我无法让python3-mysql连接器在Ubuntu 16.04中正常工作。

import MySQLdb as mdb
db_host = 'localhost'
db_user = 'sec_user'
db_pass = 'zygf'
db_name = 'securities_master'
con = mdb.connect(host=db_host,user=db_user, passwd=db_pass, db=db_name)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/tom/SAT/env/lib/python3.5/site-packages/MySQLdb/__init__.py", line 86, in Connect
return Connection(*args, **kwargs)


File "/home/tom/SAT/env/lib/python3.5/site-packages/MySQLdb/connections.py", line 204, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (1045, "Access denied for user 'sec_user'@'localhost' (using password: YES)")

这里的小伙子(显然是我遵循相同的教程)也遇到了类似的问题。他能够解决他的问题,确保他的用户可以访问正确的数据库。

https://asyoulook.com/computers%20&%20internet/connecting-python-to-mysql-obtaining-sandamp-p500-symbols/603229

设置我用过的用户:

mysql> CREATE DATABASE securities_master;
mysql> USE securities_master;

mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’password’;
mysql> GRANT ALL PRIVILEGES ON securities_master.* TO ’sec_user’@’localhost’;
mysql> FLUSH PRIVILEGES;

我认为是正确的,但我仍然得到同样的错误?

1 个答案:

答案 0 :(得分:1)

您正在正确创建用户问题是您在代码中为sec_user提供了一个密码:

  

db_pass =&#39; zygf&#39;

当您创建用户时,您正在为sec_user设置不同的密码:

  

的MySQL&GT;创建用户'sec_user'@'localhost'通过'密码'识别;

这样它就永远不会进行连接。您需要两者(db_pass和sql具有相同的密码)。所以我将修复它将sql的密码更改为你的python代码(zygf)上的密码。

首先:删除sec_user。使用此:

DROP USER 'sec_user'@'localhost';

第二:使用此方法再次创建sec_user(修复密码):

mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’zygf’;
mysql> GRANT ALL PRIVILEGES ON securities_master.* TO ’sec_user’@’localhost’;
mysql> FLUSH PRIVILEGES;