2017-12-28 6 views
0

우분투 16.04에서 python3-mysql 커넥터가 올바르게 작동하는 데 문제가 있습니다.16.04에서 작동하도록 Python3 - MySQLdb 커넥터를 가져올 수 없습니다.

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; 

을,하지만 난 여전히 같은 오류는 무엇입니까?

db_pass = 'zygf'

하고 사용자를 만들 때 :

답변

1

브로 당신이 사용자를 만드는 정확하게 문제는 코드에서 한 비밀번호를 sec_user을주는 것입니다 sec_user에 대해 다른 암호를 설정하고 있습니다.

mysql> 사용자 생성 'sec_user'@ 'localhost'IDENTIFIED BY 'password';

그런 식으로는 연결되지 않습니다. 둘 다 필요합니다 (db_pass와 sql은 동일한 암호를가집니다). 그래서 나는 당신의 파이썬 코드 (zygf)에있는 암호로 SQL의 암호를 변경하는 문제를 해결할 것이다.

첫 번째 : sec_user를 삭제하십시오. 이 옵션을 사용합니다 :

DROP USER 'sec_user'@'localhost'; 

둘째 :

mysql> CREATE USER ’sec_user’@’localhost’ IDENTIFIED BY ’zygf’; 
mysql> GRANT ALL PRIVILEGES ON securities_master.* TO ’sec_user’@’localhost’; 
mysql> FLUSH PRIVILEGES; 
: 다시 (고정 암호)를 사용하여 sec_user 만들기
관련 문제