テスト データベースの作成中にエラーが発生しました:

(base) PS C:\workspace\webapp\devapp> docker-compose run –rm web python manage.py test polls [+] Running 1/0 – Container devapp-db-1 Running 0.0s Found 1 test(s) . エイリアス ‘default’ のテスト データベースを作成しています… テスト データベースの作成中にエラーが発生しました: (1044, “データベース ‘test_Djangodb’ へのユーザー ‘userDjango’@’%’ のアクセスが拒否されました”)

このエラーは、Django のテスト データベースを作成しようとしているユーザー(この場合 ‘userDjango’)が、そのデータベースに対するアクセスを許可していないために発生しています。この問題を解決するには、以下の手順を試してくださいしてください。

  1. まず、Docker コンテナ内実行の MySQL Services に接続します。Docker Compose を使っている場合は、以下のコマンドをしてください。
バッシュ
docker-compose exec db mysql -u root -p

ここでは、dbMySQL サービスが定義されている Docker Compose ファイル内のサービス名です。は、root ユーザーとしてログインすることを指定しています。オプションは、パスワードを求める目的が表示されるようにする-u rootため-pのが表示されたら、MySQL の root ユーザーのパスワードを入力してください。

  1. 次に、’userDjango’ ユーザーにデータベース ‘test_Djangodb’ へのアクセス権を与えます。
SQL
GRANT ALL PRIVILEGES ON test_Djangodb.* TO 'userDjango'@'%';

このコマンドは、’userDjango’ ユーザーに対して、’test_Djangodb’ データベースのすべての権限を与えます。は、のホストからの接続を許可する任意を意味しています%

  1. 権限の変更を有効にするために、以下のコマンドを実行してください。
FLUSH PRIVILEGES;
  1. 最後に、MySQL サービスから要請します。
vbnet
EXIT;

これで、’userDjango’ ユーザーが ‘test_Djangodb’ データベースにアクセスできるはずです。 再度テストを実行して、エラーが解決されたか確認してください。

ERROR 1044 (42000): Access denied for user ‘userDjango’@’%’ to database ‘test_Djangodb’ このエラーを解決する方法をおしえてください

この問題を解決するには、まず、’userDjango’ ユーザーがテスト データベースを作成できるように権限を与える必要があります。

  1. Docker コンテナ内の MySQL Services に接続します。Docker Compose を使用している場合は、以下のコマンドを実行してください。
バッシュ
docker-compose exec db mysql -u root -p

ここでは、dbMySQL サービスが定義されている Docker Compose ファイル内のサービス名です。は、root ユーザーとしてログインすることを指定しています。オプションは、パスワードを求める目的が表示されるようにする-u rootため-pのが表示されたら、MySQL の root ユーザーのパスワードを入力してください。

  1. 次に、’userDjango’ ユーザーに、新しいデータベースを作成する権限を与えます。
SQL
GRANT CREATE, ALTER, DROP ON *.* TO 'userDjango'@'%';

このコマンドは、’userDjango’ ユーザーに対して、すべてのデータベースに対して CREATE, ALTER, DROP 権限を与えます。は、ホストのホストからの接続を任意に許可することを意味しています%

  1. 権限の変更を有効にするために、以下のコマンドを実行してください。
FLUSH PRIVILEGES;
  1. 最後に、MySQL サービスから要請します。
vbnet
EXIT;

これで、’userDjango’ ユーザーがテストデータベースを作成できるはずです。再度テストを実行して、エラーが解決されたか確認してください。

山田恵介
_mysql.connection.query(self, query) django.db.utils.OperationalError: (1142, “INSERT command denied to user ‘userDjango’@’172.18.0.4’ for table ‘django_migrations'”) このエラーの解決方法を教えててください

このエラーは、’userDjango’ ユーザーが ‘django_migrations’ テーブルに対して INSERT 操作を実行する権限がないために発生しています。これを解決するには、’userDjango’ ユーザーに必要な権限を許可する必要がありますあります。

前回の手順に従い MySQL サービスに接続した後、以下の手順を実行してください。

  1. ‘userDjango’ ユーザーに、すべてのデータベースとテーブルに対する必要な権限を与えます。
SQL
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON *.* TO 'userDjango'@'%';

このコマンドは、’userDjango’ ユーザーに対して、すべてのデータベースとテーブルに対する一般的な操作の権限を与えます。は、任意のホストからの接続を許可することを意味しています%

  1. 権限の変更を有効にするために、以下のコマンドを実行してください。
FLUSH PRIVILEGES;
  1. 最後に、MySQL サービスから要請します。
vbnet
EXIT;

これで、’userDjango’ ユーザーが ‘django_migrations’ テーブルに対して INSERT 操作を実行できるはずです。 再度テストを実行して、エラーが解決されたか確認してください。

山田恵介
(base) PS C:\workspace\webapp\devapp> docker-compose run –rm web python manage.py test polls [+] Running 1/0 – Container devapp-db-1 Running 0.0s Found 1 test(s) . エイリアス ‘default’ のテスト データベースを作成しています… テスト データベースの作成中にエラーが発生しました: (1007、”データベース ‘test_Djangodb’ を作成できません。データベースが存在します”) テスト データベースの削除を試みる場合は、「yes」と入力します’test_Djangodb’、またはキャンセルする場合は ‘no’: yes Destroying old test database for alias ‘default’… Traceback (最新の呼び出しが最後): ファイル “/usr/local/lib/python3.9/site-packages/django /db/backends/utils.py”、89 行目、_execute で return self.cursor.execute(sql, params) ファイル “/usr/local/lib/python3.

このエラーは、’userDjango’ ユーザーが ‘test_Djangodb.django_content_type’ テーブルに対して REFERENCES コマンドを実行する権限がないために発生しています。これを解決するには、’userDjango’ ユーザーに権限を許可する必要があります。

前回の手順に従い MySQL サービスに接続した後、以下の手順を実行してください。

  1. ‘userDjango’ ユーザーに、すべてのデータベースとテーブルに対する REFERENCES 権限を与えます。
SQL
GRANT REFERENCES ON *.* TO 'userDjango'@'%';

このコマンドは、’userDjango’ ユーザーに対して、すべてのデータベースとテーブルに対する REFERENCES 権限を与えます。は、ホストのからの接続を任意に許可することを意味しています%

  1. 権限の変更を有効にするために、以下のコマンドを実行してください。
FLUSH PRIVILEGES;
  1. 最後に、MySQL サービスから要請します。
vbnet
EXIT;

これで、’userDjango’ ユーザーが ‘test_Djangodb.django_content_type’ テーブルに対して REFERENCES コマンドを実行できるはずです。 再度テストを実行して、エラーが解決されたか確認してください。

山田恵介
(base) PS C:\workspace\webapp\devapp> docker-compose run –rm web python manage.py test polls [+] Running 1/0 – Container devapp-db-1 Running 0.0s Found 1 test(s) . エイリアス ‘default’ のテスト データベースを作成しています… テスト データベースの作成中にエラーが発生しました: (1007、”データベース ‘test_Djangodb’ を作成できません。データベースが存在します”) テスト データベースの削除を試みる場合は、「yes」と入力します「test_Djangodb」、またはキャンセルするには「いいえ」: このエラーを解消する方法を教えてください

このエラーは、テスト データベース ‘test_Djangodb’ が既に存在するために発生しています。ください。

  1. まず、MySQL サービスに接続します。Docker コンテナを使用している場合、以下のコマンドを実行してコンテナ内の MySQL サービスに接続できます。
バッシュ
docker-compose exec db mysql -u root -p

dbはデータベースサービスの名前で、-u rootは root としてログインし、-pはパスワードを要求することを意味します。必要に応じて、これらの値を環境に合わせて変更してください。

  1. 次に、登録のテスト データベース ‘test_Djangodb’ を削除します。
SQL
DROP DATABASE IF EXISTS test_Djangodb;

このコマンドは、テスト データベース ‘test_Djangodb’ が存在する場合にのみ、それを削除します。

  1. MySQL サービスからそうします。
vbnet
EXIT;

再度テストを実行して、エラーが解決されたか確認してください。

コメント

タイトルとURLをコピーしました