Django为何选用操作系统用户名而非settings配置文件中的root用户?
问题解决:Django连接MySQL时使用操作系统用户名而非配置的root用户
问题原因
你的MySQL数据库配置里的键名写错了——Django的数据库配置参数是严格区分大小写的,你用了"Name"和"User",但正确的键名应该是小写的"NAME"和"USER"。因为配置项不匹配,Django没有读取到你指定的root用户名,就会默认使用当前操作系统的用户名(也就是pankaj)尝试连接MySQL,导致出现权限拒绝错误。
修正后的配置
把配置里的键名改成小写的标准格式:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', "NAME": "django", "USER": "root", "PASSWORD": "", "HOST": "localhost", "PORT": "3306" } }
验证步骤
- 保存修改后的
settings.py文件 - 重新运行
python manage.py runserver,此时Django会使用配置的root用户连接MySQL,问题即可解决
内容的提问来源于stack exchange,提问作者Pankaj
相关产品推荐
相关产品推荐

