2016-08-10 8 views
0

リモートMariaDBインスタンスに対して簡単なクエリを実行しようとしています。 (注:私はモデルなどを適用しようとしていないよ)ユーザのアクセスが拒否されました(1044) - Django&MariaDB

私は四重のスペルをチェックしましたし、私は同じユーザ/パス/ポート/ホスト名上の他のアプリケーションなどで

を接続することができますが、いつでもI 、私はのように見えるためのものだと仮定します、私は少し奇妙'xyz_user'@'%'部分を見つける

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

::私が手クエリを実行しよう'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', 
} 

ビューモジュール:

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 

私が間違っているかもしれないものに関してどのような洞察力は大歓迎です!

+0

付与しましたか? –

+0

ええ、私が言及したように、他のアプリケーション、すなわちMySQL Workbenchからのクエリを実行してログインすることができます。私は現在接続を二重にチェックしていますが、エラーの表示権限は問題ではないようですが、WorkbenchからDjangoホストとは異なるマシン経由で接続しています。 –

+0

私は他のアプリケーションも他のデータベースを意味すると解釈しました。 –

答えて

0

は、キー/値'NAME' : 'xyz_name'について(...当然のユーザエラー、)

で問題を見つけ、私は誤って「接続名」、いないデータベース名を追加しました。この場合、このホストには1つのデータベースしかありません。

したがって:

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

はされている必要があります:あなたはxyz_nameするxyz_user権限を

'xyz_db': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': '', 
    'USER': 'xyz_user', 
    'PASSWORD': 'xyz_pass', 
    'HOST': 'xyz_hostname', 
    'PORT': '1234', 
} 
関連する問題