2017-01-09 9 views
2

mysqlを使用している場合はdjango.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'")です。ユーザ名とPWは正しいです:私は、rootとしてMySQLにログインすることができMySQL:django.db.utils.OperationalError:正しいユーザー名とpwを持つ(1698、 "ユーザー 'root' @ 'localhost'"のアクセスが拒否されました)

DB_HOST = '127.0.0.1' 
DB_USER = 'root' 
DB_PASSWORD = '' 

$ sudo mysql -u root 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 16 

でもないcchildersとして:これは問題に貢献するかもしれない

$ mysql -u root 
ERROR 1698 (28000): Access denied for user 'root'@'localhost' 

。私が最後にmysqlをインストールしたとき、これは起こらなかったので、それは私には意味がありません。私は細かいクライアントを持っている:

$ pip3 freeze 
Django==1.10.5 
mysqlclient==1.3.9 

は、私は、MySQLが私の通常のユーザーが実行できるようにするにはどうすればよいので、私はターミナルでジャンゴを実行できますか?常にroot以外のSQLユーザーを作成し、Djangoの

+1

これが正しい答えであれば、私は知らないが、私は最近、同じ問題を抱えていたし、これが私の仕事:http://askubuntu.com/questions/766334/cant-login-as-mysql -user-root-from-normal-user-account-in-ubuntu-16-04 –

+0

これは私にも役立ちました:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied- for-user-rootlocalhost – vinzee

答えて

1

のsettings.pyファイルにDB_USER変数を変更sudo

1

としてMySQLを実行して、任意の修正なしで

:あなた

汚いソリューションに感謝あなたのサーバにrootとしてログインできる理由は、おそらく.my.cnfファイルのパスワードを/root(すなわち、ユーザのホームディレクトリroot)に指定しているためです。パスワードがあるかどうかを確認し、cchildersのパスワードも使用してください。その後、django固有のアプリケーションユーザを作成して、djangoアプリケーションが/ etc/etcを読み書きしかしないようにすることができます。データベースにアクセスする必要があり、root mysqlユーザーを経由してアクセスすることはできません。

create user [email protected] identified by 'django-user-password'; 
grant usage on *.* to [email protected]; 
grant all privileges on django-database-1 to [email protected]; 
関連する問題