在laravel 4.2中,Laravel Access拒绝用户'root'@'localhost'(使用密码:YES)

问题描述 投票:4回答:8

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

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

我谷歌搜索并尝试了一切,但我无法解决它

.env文件

APP_KEY=az9tq5VHQCV9g5m2CsgY89jtijrCMgEA
DB_HOST=localhost
DB_DATABASE=billing
DB_USERNAME=root
DB_PASSWORD=1234

为database.php

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

enter image description here

任何人都可以指导我做错的地方吗?

注意:在提问之前,我尝试通过更新composer update以及大多数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";
?>

我将成功连接消息

php laravel laravel-4 laravel-5.2
8个回答
3
投票

错误说明了一切,Laravel无法连接到数据库。检查priveledges并确保数据库存在。此外,尝试使用相同的登录名和密码连接到具有客户端的数据库,如MySQL Workbench。这将提示您可以采取哪些措施来解决此问题。如果你不能这样做,那不是Laravel问题。


2
投票

试试这个

.env文件

APP_ENV=local

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=billing
DB_USERNAME=root
DB_PASSWORD=1234

配置/ database.php中

default' => env('DB_CONNECTION', 'mysql'),


'mysql' => array(
            'driver'    => 'mysql',
            'host'      => env('DB_HOST','localhost'),
            'database'  => env('DB_DATABASE','billing'),
            'username'  => env('DB_USERNAME','root'),
            'password'  => env('DB_PASSWORD', '1234'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        )

否则检查.env文件并检查连接


2
投票

我刚刚在新的Laravel安装上遇到了同样的问题。问题是我连接到我的ubuntu localhost mysql服务器,而不是连接到它自己的ip地址'192.168.10.10'上的vagrant box的mysql服务器。我转而去了,所有人都有魅力:)


1
投票

DB_HOST=localhost在Laravel 5.7上为我工作


1
投票

我在Laravel 5.6.33中测试,我看到这个错误:“访问被拒绝用户'root'@'localhost'”,但用户名和密码是正确的。在这个版本中我想到这是一个BUG,我将DB_HOST从127.0.0.1更改为localhost并且正常工作!

DB_HOST = 127.0.0.1 (之前) DB_HOST = localhost(之后)


1
投票

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


0
投票

我在使用宅基地学习laravel时面临同样的问题,当我尝试打开页面时问题就出现了。它试图连接到数据库但被拒绝,虽然我可以使用mysql命令行连接到数据库。问题是我错误的假设,因为宅基地转发Web服务器请求从客户端到主机,同样的事情也与myqsl相同,但显然它不是。 Homestead有它自己的mysql服务,所以我的问题修复了: - homestead ssh进入客机 - mysql -u root -p连接到mysql命令行,默认密码是“secret” - 创建数据库,但你需要首先更改密码,只需更改为与主机中mysql root密码相同的密码 - 方便退出mysql cli和 - php artisan migrate创建表 - 刷新浏览器,现在它应该可以连接到你的D b


0
投票

我已经解决了问题.Issue with Prefix。在Postgrey Sql中我们有数据库的前缀,所以我们必须在连接中添加前缀,这样它可能会帮助一些

为database.php

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'billing',
            'username'  => 'root',
            'password'  => '1234',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => 'bill',
        ),

0
投票

用户'root'@'localhost'拒绝访问(使用密码:YES)

错误来了吗?可能的原因是您的数据库连接。如果数据库未连接,则抛出错误。

因此,检查数据库是否所有内容以及所有内容是否正确。

如果没有解决则改变

DB_HOST=127.0.0.1 TO DB_HOST=localhost
© www.soinside.com 2019 - 2024. All rights reserved.