Laravel 5 - 数据库连接被拒绝

时间:2015-10-12 10:43:32

标签: php mysql laravel-5

我们正在申请学校,我在其中制作了一个表格来向数据库添加内容。我一直在关注Laracast,但每当我尝试提交表单时,我都会将内容添加到数据库中;

  

Connector.php第55行中的PDOException: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

3 个答案:

答案 0 :(得分:1)

您的用户名/密码组合是错误的,或者您没有在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,
        ],

答案 1 :(得分:1)

您是否正确复制粘贴文件,或者您的第一行是否真的有PP_ENV=local?那肯定是APP_ENV=local,以便检测您的本地环境/也是,您的密码" root"?我没有要求您提供密码,但需要知道您是否在使用默认的scotchbox密码。没有理由不在scotchbox中使用root / root

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

答案 2 :(得分:0)

首先你必须正确安装mysql。

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