【问题标题】:Laravel: Connecting to SQL Database within VagrantLaravel:在 Vagrant 中连接到 SQL 数据库
【发布时间】:2016-03-22 12:31:56
【问题描述】:

我最近开始从使用 XAMPP 的本地开发过渡到使用 Laravel 的宅基地虚拟盒子的 vagrant。一切都很好,但我真的不明白如何让我的数据库正常工作。互联网上很少提及这个主题......所以我想我错过了一些简单的东西。

这是我之前的设置/工作流程:

  • 启动 XAMPP,包括 MYSQL 服务器
  • 使用 HeidiSQL 查看我的数据库,使用默认登录名,'root',''(密码空白)
  • 使用以下方式连接 Laravel:

    'connections' => array(
    
    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'primary_db',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    )
    

    )

好的——请用外行的话来说——现在我在 Vagrant 中使用这个站点,我必须做什么才能连接到这个数据库?

谢谢。

编辑这个特定的项目在 Laravel 4.2 上运行(所以没有 .env 文件)

【问题讨论】:

  • 对不起,你什么意思?
  • 好吧,在主配置文件中,默认数据库使用'default' => 'mysql'设置为MySQL。这就是你要问的..?
  • Laravel 不需要你像那样手动连接......
  • 连接到这个数据库是什么意思?您的意思是让您的网站连接到数据库(都在 vagrant box 内),还是让安装在您计算机上的 heidisql 等软件连接到 vagrant box 内的数据库?
  • 嗨 Cithel- 好吧,首先我想让网站连接

标签: laravel laravel-4 vagrant


【解决方案1】:

当你用 vagrant up 启动盒子时,它会设置环境变量,告诉 laravel 使用 /app/config/local/database.php 中的配置。

你应该有类似的东西:

'mysql' => array(
    'driver' => 'mysql',
    'host' => 'localhost',
    'database' => 'homestead',
    'username' => 'homestead',
    'password' => 'secret',
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',)

这些是在 vagrant box 中创建的数据库的默认参数。

然后,如果您想使用旧数据,则必须进行转储并将其导入新数据。您可以使用相同的凭据连接到 vagrant 内部的数据库。唯一改变的是端口:在盒子里面它是通常的 3306,但是 homestead 为主机创建了一个从 33060 到 3306 的绑定。所以你应该使用 heidisql 中的端口 33060 来连接和导入你的旧转储。

【讨论】:

  • 非常感谢您的回答。是的,我现在开始明白了——我在我的 database.php 文件中已经完全按照你的要求得到了它,而且它肯定是连接的。我认为您已经解决了我问题的这个特定部分-非常感谢。不幸的是HSQL似乎无法连接,类似于这个问题:stackoverflow.com/questions/29885693/…目前正在下载最新的HSQL,看看它是否有所作为。无论如何都要打勾并投赞成票.. :)
  • @Inigo我才记起来(很久没用Homestead了),可能vagrant box的ip不是127.0.0.1,look in the Homestead.yaml file,应该有IP顶部(可能是 192.168.10.10)。如果我没记错的话,那是你应该使用的 ip 而不是 127.0.0.1。
  • 是的,它是 192.168.10.10- 很高兴现在一切正常 :) 谢谢!
【解决方案2】:

如果您使用默认的 Homestead 设置,请尝试在您的 .env 文件中使用这些凭据:

DB_HOST=127.0.0.1
DB_PORT=33060 // Or other port, whch you have configured
DB_DATABASE=biznes
DB_USERNAME=homestead
DB_PASSWORD=secret

【讨论】:

  • 对不起,我应该提到我在 Laravel 4.2 上使用这个项目,所以没有 .env 文件..
  • 然后尝试在您的配置文件中使用这些凭据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
  • 2018-02-22
相关资源
最近更新 更多