php artisan migrate 抛出 PDOException
Posted
技术标签:
【中文标题】php artisan migrate 抛出 PDOException【英文标题】:php artisan migrate throws PDOException 【发布时间】:2015-04-12 08:08:46 【问题描述】:我发现其他线程有同样的问题,但我没有解决它。文档说我应该取消注释我所做的 extension=php_pdo_mysql.dll 行。我正在使用 xampp 运行 Windows,并且正在尝试连接到 MySql 数据库。 但是我收到此错误:
$ php artisan migrate
exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)' in C:\xampp\htdocs\your-project-name\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:47
我使用正确的 MySql 凭据修改了 database.php 文件,所以我不知道为什么我会收到错误消息,说我正在尝试连接 homestead 用户名,因为我不使用它。 我最终尝试使用宅基地,但当我尝试安装它时,我也收到与 PDO 扩展相关的错误
【问题讨论】:
你是detecting your environment吗? 谢谢!这就是问题所在。我不得不修改 .env 文件中的凭据。你能解释一下那里的database.php是什么吗? 在.env
文件中,您可以指定此特定环境的凭据。该文件在您的开发机器和生产服务器上具有不同的内容。在config/database.php
中,您指定特定于应用程序的值,这些值在本地/开发和生产中是相同的。此文件从 .env
读取数据库凭据,如果未在此处指定,它将使用来自 env()
辅助方法的第二个参数的默认值。
【参考方案1】:
您必须更改 Laravel 根目录中的 .env 文件。 提供适当的凭据,并确保给定的数据库名称存在于 MYSQL 中。
然后在修改 .env 文件后,在此处使用 env 对 config/database.php 进行更改,以便它会在 .env 文件中检查该变量。如果未找到,它将使用第二个参数作为值。
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'laravel5'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'ganesh'),
【讨论】:
以上是关于php artisan migrate 抛出 PDOException的主要内容,如果未能解决你的问题,请参考以下文章
php Laravel Artisan Migrate创建领域
执行 php artisan migrate:install报错
为啥 PHP artisan migrate 命令显示错误?