Laravel 4.2中用户'root'@'localhost'的Laravel访问被拒绝(使用密码:是)

iCo*_*ers 6 php laravel laravel-4 laravel-5.2

我有使用Laravel 4.2构建的旧项目。我收到以下错误

PDOException(1045)SQLSTATE [HY000] [1045]用户'root'@'localhost'的访问被拒绝(使用密码:是)

我已经用谷歌搜索并尝试了所有想法,但我无法解决它

.env文件

APP_KEY=az9tq5VHQCV9g5m2CsgY89jtijrCMgEA
DB_HOST=localhost
DB_DATABASE=billing
DB_USERNAME=root
DB_PASSWORD=1234
Run Code Online (Sandbox Code Playgroud)

database.php

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'billing',
            'username'  => 'root',
            'password'  => '1234',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

谁能指导我做错了什么?

注意:在提出问题之前,我尝试通过更新作曲家更新以及大多数stackoverflow答案进行尝试。

更新

我已经通过创建php文件测试了此连接

<?php
$servername = "localhost";
$username = "root";
$password = "1234";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>
Run Code Online (Sandbox Code Playgroud)

我将获得成功连接消息

DeS*_*Gee 20

我的错误是 Laravel Access denied for user 'root'@'localhost' (using password: NO)

我只在我的主机站点上收到此错误。

在 .env 我改变了:

DB_USERNAME=user
DB_PASSWORD=password
Run Code Online (Sandbox Code Playgroud)

到:

DB_USERNAME='user'
DB_PASSWORD='password' 
Run Code Online (Sandbox Code Playgroud)

为我工作!

  • 更改 .env 文件后执行 `php artisan config:clear` ,以便从 .env 文件中获取新值。 (5认同)
  • 是的,在 Laravel 8 和 cPanel 中工作得非常顺利。谢谢 (4认同)
  • 即使在 Laravel 8.41.0 中,这也是解决方案。惊人的。 (3认同)

emo*_*ity 7

DB_HOST="localhost" 为我工作。


为了安全起见,将.env变量用双引号括起来以避免 ENV 错误:

DB_USERNAME="root"
DB_PASSWORD="#Password"
Run Code Online (Sandbox Code Playgroud)

这些将给错误:DB_PASSWORD=#PasswordDB_PASSWORD=I have spaces

# 是评论的开始,与完全相同 //


小智 6

运行php artisan serve配置后.env不前。


小智 5

Laravel 4.x 甚至不支持 ENV 文件。您只需查看 ./config/[env name]/database.php 中的设置是否正确即可。