Php Laravel 5-数据库连接被拒绝
我们正在申请学校,我在申请表中向数据库添加了一些内容。我一直在关注Laracast,但每当我试图提交我的表单以将内容添加到数据库时,我都会得到它 Connector.php第55行出现异常:SQLSTATE[28000][1045]访问 拒绝用户“root”@“localhost”(使用密码:YES) 我可以完美地使用命令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
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数据库。