2016-08-10 6 views
0

Der Versuch, einige einfache Abfragen für eine remote MariaDB-Instanz auszuführen. (Anmerkung: Ich versuche nicht, Modelle anzuwenden etc.)Zugriff verweigert für Benutzer (1044) - Django & MariaDB

Ich habe Schreibweisen vervierfachen geprüft und ich kann mit anderen Anwendungen auf dem gleichen Benutzer verbinden/pass/Port/Hostnamen usw.

Aber immer, wenn ich versuchen, eine Abfrage auszuführen, die ich erhalten:

(1044, "Access denied for user 'xyz_user'@'%' to database 'xyz_name'") 

ich den 'xyz_user'@'%' Teil ein wenig seltsam finden, würde ich annehmen, dass es aussehen gemeint: 'xyz_user'@'xyz_name' ...

setings.py:

'xyz_db': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'xyz_name', 
    'USER': 'xyz_user', 
    'PASSWORD': 'xyz_pass', 
    'HOST': 'xyz_hostname', 
    'PORT': '1234', 
} 

Ansichten Modul:

from django.db import connections 

... 

def some_func(): 
    cursor = connections['xyz_db'].cursor() 
    cursor.execute("SELECT user FROM xyz_table LIMIT 2") 
    row = cursor.fetchone() 
    return row 

Einsicht, was ich falsch tun könnte sehr zu schätzen!

+0

Haben Sie xyz_user Berechtigungen erteilen xyz_name? –

+0

Ja, wie ich bereits erwähnt habe, kann ich mich anmelden und Abfragen von anderen Anwendungen ausführen, z. B. MySQL Workbench. Ich überprüfe die Konnektivität jetzt doppelt - obwohl die Fehleranzeigeberechtigungen scheinen, scheinen sie nicht das Problem zu sein, und ich verbinde von Workbench über eine andere Maschine als der Django-Host. –

+0

Ich interpretierte andere Anwendungen als auch andere Datenbanken. –

Antwort

0

das Problem (Anwenderfehler, natürlich ...) gefunden

Für den Schlüssel/Wert 'NAME' : 'xyz_name' hatte ich hinzugefügt fälschlicherweise die 'Connection Name', kein Datenbankname. In diesem Fall gibt es nur eine Datenbank auf diesem Host.

Deshalb:

'xyz_db': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'xyz_name', 
    'USER': 'xyz_user', 
    'PASSWORD': 'xyz_pass', 
    'HOST': 'xyz_hostname', 
    'PORT': '1234', 
} 

Sollte waren:

'xyz_db': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': '', 
    'USER': 'xyz_user', 
    'PASSWORD': 'xyz_pass', 
    'HOST': 'xyz_hostname', 
    'PORT': '1234', 
} 
Verwandte Themen