如何连接到vagrant中的数据库

时间:2013-07-23 12:40:29

标签: mysql django vagrant

我正在运行djanog,我需要将我的数据库放在我要连接的vagrant中。 Apache正在我的本地电脑上运行。我应该如何在vagang配置文件和django中的设置文件中设置端口转发,这样我就可以连接到vagrant中的db。我目前的django db配置:

   DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',  # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'db_name',  # Or path to database file if using sqlite3.
            'USER': 'root',  # Not used with sqlite3.
            'PASSWORD': 'db_pass',  # Not used with sqlite3.
            'HOST': '',  # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',  # Set to empty string for default. Not used with sqlite3.
            'OPTIONS': {
                "init_command": "SET storage_engine=INNODB",
            }
        },

和vagrant config:

   config.vm.network :forwarded_port, guest: 80, host: 8080
   config.vm.network :forwarded_port, guest: 8000, host: 8001

感谢

2 个答案:

答案 0 :(得分:2)

您的网络电话应如下所示:

config.vm.network :forwarded_port, guest: [db port x, e.g. 3306 for MySQL], host: [unused host port y]

在Django配置中,将主机保留为空(默认为localhost)并从上面指定相同的端口y。 VirtualBox会将您的请求转发给localhost:y到[guest]:x。

答案 1 :(得分:0)

我之前尝试过这个,但是很久以前,所以这可能不起作用。我正在运行一个lucid32框,其中安装了postgres和django。

对于数据库,您只需使用数据库名称和安装它的端口即可。对我来说,安装vagrant没有出现问题,因为我的数据库托管在127.0.0.1:5432上,这是我的Windows配置。我尝试了它,它也和Vagrant合作。

您有不同的数据库和不同的配置,因此这可能不起作用,但值得一试。