繁体   English   中英

SQLSTATE [28000] [1045]用户'root'拒绝访问

[英]SQLSTATE[28000] [1045] Access denied for user 'root'

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

我已经检查了我的密码和用户名,他们都是正确的。 服务器要求也是因为我已经有2个运行相同主机的Laravel站点。

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

可能导致这种情况的原因是什么?如何解决? 我真的需要一个解决方案,因为这让我夜不能寐。

试着用这3个工匠的命令。

1) php artisan config:clear

2) php artisan cache:clear

3) php artisan config:cache

不同的配置? 它说你的密码是空的;)

“我已经检查了我的密码和用户名”

“(使用密码:否)”

应用程序/配置/ 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'    => '',
),

打开终端并输入

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

希望这可能有所帮助

谢谢。

无论何时部署项目,通常都应该将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
});

然后从浏览器调用clear-cache路由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM