Php Laravel 5-数据库连接被拒绝

Php Laravel 5-数据库连接被拒绝,php,mysql,laravel-5,Php,Mysql,Laravel 5,我们正在申请学校,我在申请表中向数据库添加了一些内容。我一直在关注Laracast,但每当我试图提交我的表单以将内容添加到数据库时,我都会得到它 Connector.php第55行出现异常:SQLSTATE[28000][1045]访问 拒绝用户“root”@“localhost”(使用密码:YES) 我可以完美地使用命令php artisan migrate,它可以创建表。 只是应用程序本身不起作用 有什么办法解决这个问题吗 .env文件 PP_ENV=local APP_DEBUG=true

我们正在申请学校,我在申请表中向数据库添加了一些内容。我一直在关注Laracast,但每当我试图提交我的表单以将内容添加到数据库时,我都会得到它

Connector.php第55行出现异常:SQLSTATE[28000][1045]访问 拒绝用户“root”@“localhost”(使用密码:YES)

我可以完美地使用命令
php artisan migrate
,它可以创建表。 只是应用程序本身不起作用

有什么办法解决这个问题吗

.env文件

PP_ENV=local
APP_DEBUG=true
APP_KEY=Hp7smlDebYOhW04Xn70J0TWfySNI2iAG

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=boost
DB_USERNAME=root
DB_PASSWORD=******

CACHE_DRIVER=file
SESSION_DRIVER=file
'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'sample'),
            'username'  => env('DB_USERNAME', 'root'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

首先,您必须正确安装mysql

在local.env或扩展名为.env的文件中进行DB配置。
您需要提供与database.php文件中提供的配置相同的配置。

您的用户名/密码组合错误,或者您没有为mysql中的根用户提供正确的主机授权

如果您的用户名密码组合正确-以root用户身份从命令行登录mysql。然后应用以下各项:

将**上的所有权限授予由“选择密码”标识的“根”@“%”

它允许根用户拥有来自任何主机的所有权限。我不建议在生产环境中这样做

还要检查database.php是否与.env文件匹配

'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'sample'),
            'username'  => env('DB_USERNAME', 'root'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

您是否正确地复制粘贴了文件,或者您的第一行确实有
PP_ENV=local
?为了检测您的本地环境,您的密码肯定应该是
APP_ENV=local
,另外,您的密码是“root”吗?我不是要你的密码,但我需要知道你是否在这里使用默认的密码。没有理由不在scotchbox中使用root/root


您可以检查的另一件事是,看看laravel是否检测到您的本地环境:将它放在某个控制器中,然后打印$environment变量。你是否因此变得“本地”了<代码>$environment=App::environment();生态环境

$dbh=new-PDO('mysql:host=;dbname=test','root','********');试试这个。有时对于localhost,如果您提供主机名,它会抛出错误。最好保持空白。您是否正确复制粘贴了文件,或者您的第一行确实有“PP_ENV=local”?为了检测您的本地环境,您的密码肯定应该是“APP_ENV=local”还是“root”?我不是要你的密码,但我需要知道你是否在这里使用默认的密码。没有理由不在Scotchbox中使用root/root。您可以检查的另一件事是,看看laravel是否检测到您的本地环境:将它放在某个控制器中,然后打印$environment变量。你是否因此变得“本地”了<代码>$environment=App::environment();生态环境我正在使用.env文件进行数据库配置。@JorenPolfliet检查文件夹权限能否将.env文件的完整副本粘贴到此处?另外,您是否正在使用scotchbox/vagrant?@jorre使用.env文件的内容更新OP。我使用的是scotchbox/vagrant。@JorenPolfliet您能对答案发表评论并告诉我们确切的问题是什么吗?我确信登录详细信息是正确的。我要给命令打一针!谢谢。你凭什么说你肯定?你有没有用其他方式测试过你的证书?是的,我有。我可以使用完全相同的凭据使用SQLyog登录到我的数据库。好的,那么我怀疑您的环境可能没有在Laravel的.env文件中正确设置。请看我上面的评论并给我们一些反馈。@Jorre会尽快做的。非常感谢。我怀疑我可能使用了错误的数据库。第一个问题是我在.env文件中输入了一个错误。其次,我在错误的数据库中工作。我使用的是我的MAMP数据库,而不是scotchbox数据库。