【问题标题】:How do I connect my Laravel 5 app to mysql using MAMP?如何使用 MAMP 将我的 Laravel 5 应用程序连接到 mysql?
【发布时间】:2015-12-01 21:06:41
【问题描述】:

在尝试不同的事情时,我在运行 php artisan migrate 时遇到了几个不同的错误。最新的是:

Access denied for user 'homestead'@'localhost' (using password: YES

这是我的数据库.php

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'unix_socket'   => '/Applications/MAMP/tmp/mysql/mysql.sock',
    'database'  => env('DB_DATABASE', 'forge'),
    'username'  => env('DB_USERNAME', 'forge'),
    'password'  => env('DB_PASSWORD', ''),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
    'port' => '3306'
],

这是.env

APP_ENV=local
APP_DEBUG=true
APP_KEY=halMyGPhfVZGrdpibFIwEE0wZipP5lqu

DB_HOST=localhost *updated
DB_DATABASE=forge *updated
DB_USERNAME=forge *updated
DB_PASSWORD= *updated

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

【问题讨论】:

  • 您无法从外部连接到 virtualbox,反之亦然。

标签: php mysql laravel laravel-5 laravel-artisan


【解决方案1】:

尝试在.env 文件中更改以下内容,或从.env 文件中删除与DB 相关的所有键。

DB_HOST=localhost
DB_DATABASE=forge
DB_USERNAME=forge
DB_PASSWORD=

我遇到了同样的问题,问题是,database.php 文件在 .env 文件中查找密钥 DB_DATABASE 等。由于该键存在于.env 文件中,因此它不考虑您在语句env('DB_DATABASE', 'forge') 中提供的默认值forge

简而言之,“在.env 中查找密钥DB_DATABASE,如果存在,则使用该密钥,否则默认使用forge

在您的情况下,密钥存在于.env 文件中,因此,尽管您提供了forge,但它认为homestead 是在.env 文件中定义的。因此错误访问被拒绝'homestead'@'localhost'

希望我澄清了事情。

【讨论】:

  • 您好,感谢您的帮助。我按照你的建议做了,但我收到了Access denied for user ''@'localhost' to database 'forge'
  • 您尝试了哪个选项?进行更改后,您可以使用 .env 和 database.php 的内容更新您的问题吗?
  • 在我的盒子上试过了。它正在工作,它也应该对你有用。你可能错过了什么
  • 您的更改应该有效。您可以使用 mysql 命令连接到数据库吗?用户名 forge 和密码为空?
  • 修改.env文件和database.php后,别忘了重启服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 2014-05-19
  • 2016-07-22
  • 2015-06-01
  • 2014-02-19
  • 2018-04-18
相关资源
最近更新 更多