数据库连接被拒绝


Laravel 5 - Database connection denied

我们正在申请学校,我在其中制作了一个表单来添加一些东西到数据库中。我一直在跟踪Laracast,但每当我试图提交表单以将内容添加到数据库时,我都会得到;

PDOException in Connector.php line 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

您是否正确地复制粘贴了文件,或者您真的在第一行上有PP_ENV=local ?这绝对应该是APP_ENV=local,以便检测您的本地环境/也,您的密码是"root"吗?我不是要求您的密码,但需要知道您是否在这里使用默认的scotchbox密码。在scotchbox

中没有理由不使用root/root

您可以检查的另一件事是查看laravel是否检测到您的本地环境:将其放在某个控制器中并打印$environment变量。结果是你变得"本地化"了吗?$environment = App::environment(); echo $environment;

您的用户名/密码组合错误,或者您没有将正确的主机授予mysql的root用户

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

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'CHOOSE A PASSWORD';

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

还要检查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,
        ],

首先你必须正确安装mysql。

在本地配置DB。Env或扩展名为. Env的文件。您需要提供与database.php文件中提供的相同的配置。