8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Djangoのtest実行時に発生するデータベースエラー Got an error creating the test database: permission denied to create database

Last updated at Posted at 2019-06-15

環境

Django==2.0.4
PyMySQL==0.8.0
MySQL==5.7

問題

djangoのtest.pyを書いてテストを実行。

$ python manage.py test

以下のようなエラーが出た。

# Got an error creating the test database: (1044, "Access denied for user 'user'@'%' to database 'test_database'")

どうやら、テスト実行時にdatabaseの他にテスト用のデータベースtest_databaseを作ってテストしているらしい。
そしてそのデータベース作成のための権限がなかったらしい。

解決策

settings.pyのデータベースの部分を修正

settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'db',
        'PORT': '3306',
        # テスト用にこの行を追加
        'TEST': {
            'NAME': 'test_database',
        },
    }
}

ShellでMySQLにrootでログインする

$ mysql -u root -p

djangoからデータベース操作するuserにtest_databaseへの権利を付与する。

mysql> GRANT ALL PRIVILEGES ON test_database.* TO 'user'@'%';

以上

参考

この記事は主に次のサイトの和訳になってます。
https://stackoverflow.com/questions/14186055/django-test-app-error-got-an-error-creating-the-test-database-permission-deni

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?