2017-12-28 10 views
0

Ubuntu 16.04でpython3-mysqlコネクタが正常に動作するのに問題があります。Python3 - MySQLdbコネクタを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

ブロ正しくユーザーを作成している問題は、あなたのコード内で1つのパスワードsec_userを与えているということです。

DB_PASS =「zygf」

と、ユーザーにあなたを作成しているがsec_userに別のパスワードを設定しています。

mysql> CREATE USER 'sec_user' @ 'localhost' IDENTIFIED BY 'password';

こうして接続は決してできません。両方が必要です(db_passとsqlのパスワードは同じです)。だから私はあなたのpythonコード(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を作成します。
関連する問題