我已经准备好项目,并且我刚刚上载到共享托管服务器。一切在我的本地计算机上都可以正常运行,但是页面显示错误: “ SQLSTATE [28000] [1045]用户'root'@'localhost'的访问被拒绝(使用密码:否)”
我已经检查了密码和用户名,它们都是正确的。服务器要求也与我已经在同一主机上运行其他两个Laravel站点一样。
我已完成php artisan config:cache php artisan cache:clear但没有进展。
可能是什么原因引起的,如何解决?我迫切需要一个解决方案,因为这已经使我整夜无法入睡。
答案 0 :(得分:1)
尝试使用这3个工匠命令。
1)php artisan config:clear
2)php artisan cache:clear
3)php artisan config:cache
答案 1 :(得分:0)
不同的配置?就是说您的密码为空;)
“我已经检查了密码和用户名”
“(使用密码:否)”
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' => '',
),
答案 2 :(得分:0)
打开终端并输入
sudo mysql -u root -p
它将在mysql中提示您,在这里您可以触发任何mysql命令。
使用mysql表更改表类型,因此我们可以使用空密码。波纹管是它的命令
USE mysql;
现在我们通过以下命令更改表的类型
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
现在我们必须刷新特权,因为我们使用了UPDATE。如果直接在授予表上使用INSERT,UPDATE或DELETE,则需要使用FLUSH PRIVILEGES来重新加载授予表。
FLUSH PRIVILEGES;
现在通过以下命令从mysql退出
exit;
现在通过以下命令重启mysql服务器
service mysql restart
希望这会有所帮助
谢谢。
答案 3 :(得分:0)
每次部署项目时,通常应将php artisan config:cache命令作为生产部署例程的一部分运行。我建议你
为此,请在命令行上运行以下Artisan命令
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
});
然后从浏览器调用清除缓存路由。