2014-10-06 56 views
1

我有一个Django项目,我想在Vagrant虚拟机中运行。我能够启动和配置虚拟机,并且我在虚拟机内部设置了一个MySQL数据库,我希望Django应用程序能够连接到该虚拟机,但每当我尝试运行runserver时,都会收到以下错误消息:通过Django连接到Vagrant的数据库

django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

这似乎仍然试图连接到我的本地MySQL实例。

我流浪的网络设置如下:

config.vm.network :private_network, ip: "192.168.33.3" 
config.vm.network :forwarded_port, guest: 3306, host: 8000 

而且Django的数据库设置:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'dbname', 
     'USER': 'root', 
     'PASSWORD': '', 
     'PORT': 8000 
    } 
} 

尝试没有成功this answer的办法。

+0

如果使用MySQLBench之类的工具从主机连接到MySQL,会发生什么情况?你可以手动连接到你的vm里面的mysql吗?您是否遇到可能主机端口已在使用的流浪错误? – Sgoettschkes 2014-10-18 18:57:23

回答

1

我也有这个问题。我通过编辑settings.py 修复了这个问题,在参数DATABASE中提供了名称主机名。 最后DATABASE参数将如下

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'djangodb', 'USER':'root', 'PASSWORD':'root', 'HOST':'127.0.0.1' } } 它为我工作。

相关问题