我们正在申请学校,我在其中制作了一个表格来向数据库添加内容。我一直在关注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
答案 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文件中提供的相同配置。