用户访问被拒绝 (1044) - Django 和 MariaDB

Access denied for user (1044) - Django & MariaDB

正在尝试 运行 一些针对远程 MariaDB 实例的简单查询。 (注意:我不是在尝试应用模型等)

我已经对拼写进行了四重检查,我可以在同一 user/pass/port/hostname 等上连接其他应用程序

但每当我尝试 运行 查询时,我得到:

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

我发现 'xyz_user'@'%' 部分有点奇怪,我认为它应该看起来像:'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

非常感谢任何关于我可能做错的见解!

发现问题(用户错误,当然...)

对于key/value 'NAME' : 'xyz_name'我误加了'Connection Name',不是数据库名。在这种情况下,此主机上只有一个数据库。

因此:

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

应该是:

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