web-dev-qa-db-ja.com

mysql_exceptions.OperationalError:(1045、 "ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:YES)")

Djangoの使用を開始しました。settings.pyで「データベース」を設定した後の「runserver」のエラーは次のとおりです

mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)") 

コードの私のsettings.py部分:

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'Oracle'.
        'NAME': 'my_site',                      # Or path to database file if using sqlite3.
        'USER': 'root',                      # Not used with sqlite3.
        'PASSWORD': 'root',                  # Not used with sqlite3.
        'Host': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }

}

「my_site」データベースを作成し、権限が正しく設定されています(rootにはすべての権限があります)。この操作は「phpmyadmin」で行いました。

何がうまくいかないのですか?

14
Massimo Variolo

コンソールで実行

mysql> grant all privileges on *.* to root@localhost identified by 'password' with grant option;
14
Akhilraj N S

2日間苦労した後、私は最終的に何が悪いのかを見つけました。 Django site are-のmysqlデータベースを設定するための全手順

Settings.pyファイルは次のようになります。

DATABASES = { 
   'default': {
       'ENGINE': 'Django.db.backends.mysql',
       'NAME': 'Django_db',   #Name of database you created
       'USER': 'root',        #Username of database you created
       'PASSWORD':'',         #Password of database you created
       'Host': '',
       'PORT': '',
    } }

注:-上記のパスワードとユーザー名は私のローカルホストのものであり、あなたが変更したものです。

  1. localhostにデータベースを作成し、名前を付けますDjango_db(これには、lamp/wamp/Xamppまたはmysqlコマンドプロンプトを使用できます)

  2. ファイルsettings.pyを編集し、以下のコードに示すように、データベースを開くために必要なパスワードをDATABASESフィールドに保存します。

  3. オープンターミナル。

  4. 仮想環境を使用している場合は、コマンドを使用して仮想環境に切り替えます->workon env_name

  5. cd app_nameたとえばcd mysite

ステップ3、4、および5は、アプリケーションでmanage.pyファイルが見つかったフォルダーに到達する方法を示しています。

6.正しいディレクトリにいることを確認するには、コマンドls -lを実行します。あなたがmanage.pyファイルを見つけたら、すべてが順調です

7. python manage.py migrate

上記のコマンドの実行時に「MySQLdbという名前のモジュールはありません」などのエラーが発生した場合は、 link にアクセスできます。

8. python manage.py syncdb

9.python manage.py runserver

10。Django adminのユーザー名とパスワードを要求されます。開きたいものをすべて入力してくださいDjango adminサイト。

11.` http:// localhost/phpmyadmin のlocalhostのデータベースにいくつかのテーブルがあることを確認します。あなたは今行ってもいいです。

3
Rahul Satal

命令は、次のようなSQLステートメントでusernameを追加すると述べています。

GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON winestores.* TO [email protected] IDENTIFIED by 'password';

Rootでこれを行った後、私は終了し、新しいユーザーで再度ログインしようとしました。エラー1045が発生しました。rootとして再度ログインし、username@localhostを除いてSQLステートメントを再発行することで修正しました。動いた!なぜだかわかりませんか?多分それは「127.0.0.1」と「localhost」のIPの違いですか???

dev.mysql.com を読んでください。

2
hjpotter92

この問題が発生した場合は、データベースユーザーHostlocalhostであることを確認してください。 %に設定した場合、機能しません。localhostを追加するか、全体的なセキュリティ設定を変更する必要があります。

1
Dennis Kioko

dBはrootユーザーとパスワードを認識しません。 phpmyAdminに移動して別のユーザーとパスワードを作成し、DBに割り当てることができる場合、それが機能しない場合は、作成してコンソールを作成し、すべてのユーザーに権限を付与してください。

0
jcho360

これは、ユーザー名またはパスワードが間違っている場合に発生します.....ユーザー名とパスワードをもう一度確認してください。

0
Sparsh Bansal