2017-01-12 2 views
1

ich auf Tutorial arbeite 5, ich versuchte, läuft ein Test:Django Tutorial 5, 1044 Zugriff verweigert für User @ 'localhost' Datenbankfehler

$ python manage.py test polls 
Creating test database for alias 'default'... 
Got an error creating the test database: (1044, "Access denied for user 'myprojectuser'@'localhost' to database 'test_myproject'") 
Type 'yes' if you would like to try deleting the test database 'test_myproject', or 'no' to cancel: yes 
Destroying old test database for alias 'default'... 
Got an error recreating the test database: (1044, "Access denied for user 'myprojectuser'@'localhost' to database 'test_myproject'") 

habe ich versucht, die Testname in settings.py

Erwähnens
DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'myproject', 
     'USER': 'myprojectuser', 
     'PASSWORD': 'password', 
     'HOST': 'localhost', 
     'PORT': '', 
     'TEST_NAME': 'test_database_myprojecttest', 
    } 
} 

ich lief auch „GRANT ALL PRIVILEGES ON test_myproject TO 'myprojectuser'@'localhost';“ und

CREATE USER 'myprojectuser'@'localhost' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON myproject TO 'myprojectuser'@'localhost'; 

Die beiden Abfrage oben wurden Befehle während laufen Einrichten der Datenbank

Immer noch der gleiche Fehler. Was soll ich machen ?

+0

die Version django verwenden Sie? –

+0

Verwenden Sie es lokal oder Heroku, ... haben Projekt mit Befehl gemacht? –

Antwort

0

Der Name für die Testdatenbank wird gebildet, indem 'test_' zum Namen der in NAME angegebenen Datenbank hinzugefügt wird.

Wenn Sie mit Django < 1.7 dann:

'TEST_NAME': 'test_myproject', 

Wenn Sie Django verwenden> = 1,7: dann sollten Sie TEST als Wörterbuch in Einstellungen verwenden:

'TEST' : {  
    'NAME': 'test_myproject', 
} 

Zur Zeit haben Sie :

Allerdings sollten Sie den Namen der Testdatenbank in den Einstellungen nur angeben, wenn dies der Fall ist unterscheidet sich von Standard eins mit "test_yourDbName".

Wenn das nicht hilft, können Sie zu Sqlite ENGINE wechseln. Mit Sqlite sollte die Testdatenbank im Speicher erstellt werden, ohne auf eine reale Datenbank zuzugreifen.

0

versuchen, ein Hinzufügen von * zu Ihrer SQL-Abfrage Tabellen enthalten:.

GRANT ALL PRIVILEGES ON test_myproject.* TO 'myprojectuser'@'localhost' IDENTIFIED BY 'password'; 
Verwandte Themen