Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过web的Laravel SQL连接错误,在artisan中工作_Php_Laravel_Laravel Artisan - Fatal编程技术网

Php 通过web的Laravel SQL连接错误,在artisan中工作

Php 通过web的Laravel SQL连接错误,在artisan中工作,php,laravel,laravel-artisan,Php,Laravel,Laravel Artisan,当尝试访问我的Laravel网站时,我在尝试执行$candidate=App\Models\candidate::find(400)时遇到SQL连接被拒绝错误 但是,我可以使用命令行中的php artisan tinker进行良好连接: root@454ab4403b8f:/app# php artisan tinker Psy Shell v0.9.6 (PHP 7.2.7-1+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman >

当尝试访问我的Laravel网站时,我在尝试执行
$candidate=App\Models\candidate::find(400)时遇到SQL连接被拒绝错误

但是,我可以使用命令行中的
php artisan tinker
进行良好连接:

root@454ab4403b8f:/app# php artisan tinker
Psy Shell v0.9.6 (PHP 7.2.7-1+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> App\Models\Candidate::find(400)
=> App\Models\Candidate {#2865
     candid: 400,
     firstname: "",
     ...
   }

artisan是否有与web不同的配置?为什么一个可以工作而另一个不能工作?

MySQL数据库上的根帐户通常会被阻止登录,而不是控制台。Artisan是控制台,您的用户得到认可

为了您的开发目的,只需在您的数据库中创建一个专用的数据库和数据库用户

并且永远不要在web应用程序中使用root。始终为数据库等创建专用用户。Root有太多的功能,并且一些可能在普通用户身上弹出的错误不会在Root下弹出,这可能导致在转移到生产环境时出现意外错误。在您的本地环境中,您希望尽可能地模拟生产,但有所有相同的限制


此外,如果您的网站最终会出现漏洞,并且在生产过程中,您也会使用ROOT作为数据库用户,那么如果黑客发现了漏洞,那么黑客可以读取/修改/擦除您所有数据库中的所有数据,并可能访问您的文件系统并以这种方式收集其他文件。除非用于配置数据库,否则切勿使用root。

如果您使用artisan serve运行应用程序,请重新运行。谢谢。这就解决了问题。我只是在本地Docker环境中测试一些东西,尝试学习Laravel,所以不必费心设置数据库用户。好吧,学习总是很有趣的,现在你在开发中学到了宝贵的一课,不要使用root。如果这个答案有帮助,请勾选左边的复选标记。呵呵,是的,我部署了很多MySQL数据库,所以我知道访问控制,但我想我这次可能会偷懒,因为这只是为了测试:)好吧,现在偷懒来咬你的后腿了。当一个人面对自己的选择时,那是多么有趣的时刻啊?“就这一次…”通常会回到闹鬼的地方。
root@454ab4403b8f:/app# php artisan tinker
Psy Shell v0.9.6 (PHP 7.2.7-1+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> App\Models\Candidate::find(400)
=> App\Models\Candidate {#2865
     candid: 400,
     firstname: "",
     ...
   }