尝试针对远程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
非常感谢任何关于我可能做错的见解!
答案 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',
}