Php SQLSTATE[28000][1045]拒绝用户访问';根';
我有我的项目准备好了,我刚刚上传到一个共享托管服务器。在我的本地机器上,一切正常,但页面显示错误: “拒绝用户‘root’@‘localhost’(使用密码:否)的SQLSTATE[28000][1045]访问” 我已经检查了我的密码和用户名,它们都是正确的。服务器要求也是如此,因为我已经有2个其他Laravel站点使用相同的主机运行 我已经完成了php-artisan-config:cache-php-artisan-cache:clear但没有进展Php SQLSTATE[28000][1045]拒绝用户访问';根';,php,laravel,eloquent,Php,Laravel,Eloquent,我有我的项目准备好了,我刚刚上传到一个共享托管服务器。在我的本地机器上,一切正常,但页面显示错误: “拒绝用户‘root’@‘localhost’(使用密码:否)的SQLSTATE[28000][1045]访问” 我已经检查了我的密码和用户名,它们都是正确的。服务器要求也是如此,因为我已经有2个其他Laravel站点使用相同的主机运行 我已经完成了php-artisan-config:cache-php-artisan-cache:clear但没有进展 这可能是什么原因造成的?如何解决?我迫切需
这可能是什么原因造成的?如何解决?我迫切需要一个解决方案,因为这让我一夜没睡。不同的配置?它表示您的密码为空;) “我已检查了密码和用户名” (使用密码:否) app/config/database.php:
'mysql' => array(
'read' => array(
'host' => '192.168.1.1',
),
'write' => array(
'host' => '196.168.1.2'
),
'driver' => 'mysql',
'database' => 'database',
'username' => 'root',
'password' => '<insert password here?>',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'mysql'=>数组(
'读取'=>数组(
'主机'=>'192.168.1.1',
),
'写入'=>数组(
“主机”=>“196.168.1.2”
),
“驱动程序”=>“mysql”,
“数据库”=>“数据库”,
'用户名'=>'根',
'密码'=>'',
“字符集”=>“utf8”,
“排序规则”=>“utf8\U unicode\U ci”,
'前缀'=>'',
),
尝试使用这3个artisan命令
1) php artisan配置:清除
2) php artisan缓存:清除
3) php artisan配置:缓存打开终端并键入
sudo mysql -u root -p
它会在mysql中提示您,在这里您可以启动任何mysql命令
使用mysql表更改表类型,所以我们可以使用空密码。贝娄是它的指挥者
USE mysql;
现在,我们通过以下命令更改表的类型
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
exit;
service mysql restart
现在我们必须刷新特权,因为我们使用了更新。如果直接对授权表使用INSERT、UPDATE或DELETE,则需要使用FLUSH权限才能重新加载授权表
FLUSH PRIVILEGES;
现在通过以下命令退出mysql
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
exit;
service mysql restart
现在通过以下命令重新启动mysql服务器
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
exit;
service mysql restart
希望这能有所帮助
谢谢。无论何时部署项目,通常都应该在生产部署例程中运行php-artisan-config:cache命令。我建议你
php artisan config:clear
php artisan cache:clear
php artisan config:cache
如果您无权访问服务器上的命令行,则可以通过向路由添加以下内容以编程方式执行命令:
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('config:clear');
$exitCode = Artisan::call('cache:clear');
$exitCode = Artisan::call('config:cache');
return 'DONE'; //Return anything
});
然后从浏览器中调用清除缓存路由。是否检查了那里的t.evn文件和凭据?如果抛出相同错误,请尝试手动访问数据库。我曾经犯过同样的错误,这是因为数据库本身不是laravelshow us.env文件。您在.env文件中使用了错误的详细信息。请再次检查。您应该在此处添加您的env文件设置,以便我们可以看到问题。这里是我的数据库详细信息。env fileDB_CONNECTION=mysql db_HOST=127.0.0.1 db_PORT=3306 db_DATABASE=cabyzen db_USERNAME=cabyzen db_PASSWORD=@xxxxxxxxx您是否尝试逐一使用以上所有命令,我希望它能解决您的问题。我刚刚用本地计算机上的文件更改了.env文件的内容,并再次确认了数据库用户名和密码,但没有用。我仍然有此错误。已确认的本地计算机默认有用户名:root和密码:我认为服务器没有看到我的.env文件。这可能是什么原因?您在配置中拼错了密码吗?因为你们mysql说它没有密码谢谢大家。这个问题已经解决了。php artisan缓存:只需清除即可。php artisan配置:缓存是我的问题。第二个命令缓存已上载到服务器的数据库参数,该服务器将覆盖.env文件中设置的参数。所以我所做的就是运行php artisan缓存:清除,然后重新上传。希望这能帮助其他人。