用户拒绝访问(1044) - Django& MariaDB的

时间:2016-08-10 12:38:37

标签: python django mariadb

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

我检查了四倍的拼写,我可以在同一个用户/通行证/端口/主机名等上连接其他应用程序。

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

(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

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

1 个答案:

答案 0 :(得分:0)

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

对于键/值'NAME' : 'xyz_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',
}