我很难让python3-mysql连接器在Ubuntu16.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)")这里的那个家伙(他显然是在学习我的同一篇教程)也遇到了类似的问题。他能够解决他的问题,我确保他的用户能够访问正确的数据库。
要设置我的用户,我使用:
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;我相信这是正确的,但我仍然得到同样的错误?
发布于 2017-12-28 19:43:20
您正在正确地创建用户,问题是您在代码中给sec_user一个密码:
db_pass =“zygf”
在创建用户时,需要为sec_user设置不同的密码:
mysql>创建用户‘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;https://stackoverflow.com/questions/48013286
复制相似问题