我正在做我的第一个Django项目,并努力将其连接到我的MySQL数据库。我的项目正在努力从设置中获取数据库值。这是我的问题。
settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django',
'USER': 'admin',
}
}
由于我试图与用户隔离问题,因此我已删除了密码,主机和端口。
我运行
python manage.py diffsettings
,结果包括,明确包含用户:DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'django', 'USER': 'admin', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'PASSWORD': '', 'HOST': '', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
但是,当我运行
python manage.py migrate
时,出现以下错误:django.db.utils.OperationalError: (1044, "Access denied for user ''@'localhost' to database 'django'")
您可以在此处看到该用户不见了。它显示的是
''@'localhost'
而不是'admin'@'localhost'
奇怪的是,数据库名称已被拾取,而用户不是。关于我在做什么错的任何想法吗?
最佳答案
我正在解决这个问题。最初,我试图通过选项read_default_file cnf来配置设置,而我仅将用户移动到settings.py中以尝试对此进行调试。
如果我将所有配置都放入设置中,那么django会正确连接到mysql。现在,我只需要弄清楚如何使cnf文件正常工作。
关于mysql - Django设置未接收用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58811989/