SQLSTATE [28000] [1045]用户“ root”的访问被拒绝

时间:2018-10-27 09:03:39

标签: php laravel eloquent

我已经准备好项目,并且我刚刚上载到共享托管服务器。一切在我的本地计算机上都可以正常运行,但是页面显示错误:  “ SQLSTATE [28000] [1045]用户'root'@'localhost'的访问被拒绝(使用密码:否)”

我已经检查了密码和用户名,它们都是正确的。服务器要求也与我已经在同一主机上运行其他两个Laravel站点一样。

我已完成php artisan config:cache php artisan cache:clear但没有进展。

可能是什么原因引起的,如何解决?我迫切需要一个解决方案,因为这已经使我整夜无法入睡。

4 个答案:

答案 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命令作为生产部署例程的一部分运行。我建议你

  1. 删除配置缓存文件
  2. 刷新应用程序缓存
  3. 创建缓存文件以更快地加载配置

为此,请在命令行上运行以下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
});

然后从浏览器调用清除缓存路由。