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

时间:2016-08-19 09:09:26

标签: php laravel laravel-4 laravel-5.2

我有使用Laravel 4.2构建的旧项目。我正在关注错误

  

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

我用Google搜索并尝试了每一个想法,但我无法修复它

.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

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

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

我将成功连接消息

19 个答案:

答案 0 :(得分:6)

在配置php artisan serve之后而不是之前运行.env

答案 1 :(得分:5)

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

我只在我的托管站点上收到此错误。

在.env中,我更改了:

DB_USERNAME=user
DB_PASSWORD=password

收件人:

DB_USERNAME='user'
DB_PASSWORD='password' 

为我工作!

答案 2 :(得分:3)

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

答案 3 :(得分:3)

尝试.ENV

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

删除根/ boostrap / chache /文件中缓存文件 并运行应用程序

答案 4 :(得分: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文件并检查连接

答案 5 :(得分:2)

我刚刚在新的Laravel安装上遇到了同样的问题。 问题是我连接到我的ubuntu localhost mysql服务器,而不是连接到它自己的ip地址'192.168.10.10'上的vagrant box的mysql服务器。 我改变了这一点,并且都有一个魅力:)

答案 6 :(得分:1)

DB_HOST=localhost在Laravel 5.7上为我工作

答案 7 :(得分:1)

我正在Laravel 5.6.33中进行测试,并且看到以下错误:“用户'root'@'localhost'的访问被拒绝” ,但是用户名和密码是正确的< / b>。   在此版本中,我认为这是一个错误,我将DB_HOST从127.0.0.1更改为localhost并可以运行!  

DB_HOST = 127.0.0.1 (之前)
 DB_HOST =本地主机(之后)

答案 8 :(得分:1)

请删除位于bootstrap / cache / config.php中的配置文件 当您运行php artisan config:cache命令时,它将自动生成 它会工作

答案 9 :(得分:1)

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

答案 10 :(得分:1)

确保您的.env使用的端口号正确。如果您使用的是phpMyAdmin,请按以下步骤进行设置:

MariaDB defaults to 3306

MySQL defaults to 3308

因此,将您的.env更改为对MySQL使用端口3308。我希望这会有所帮助!

答案 11 :(得分:1)

我遇到了同样的问题。您应该在DB_USERNAME和DB_PASSWORD中添加“” 因此,

  • 步骤1:DB_USERNAME =“ root” DB_PASSWORD =“ 1234”
  • 第2步:运行“ php artisan config:clear”
  • 第3步:运行“ php artisan cache:clear”

答案 12 :(得分:0)

听起来很明显,但请检查数据库的凭据。

答案 13 :(得分:0)

我将.env中的这一行DB_HOST = 127.0.0.1更改为DB_HOST = localhost,它对我有用。

答案 14 :(得分:0)

我遇到了类似的问题,密码是此类通信中的主要问题,请参见下面的图片,在更改密码,php artisan服务并重新加载我的视图后,我解决了该问题。它起作用了。

请登录mysql或phpmyadmin并更改密码。 enter image description here

enter image description here

答案 15 :(得分:0)

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

  

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

     

因此,请检查数据库中是否所有内容都已删除,并且所有内容是否正确。

     

如果解决不了,那就改变

DB_HOST=127.0.0.1 TO DB_HOST=localhost

答案 16 :(得分: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',
        ),

答案 17 :(得分:0)

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

答案 18 :(得分:-1)

Laravel 6只是设置秘密而不是空白空间。

DB_PASSWORD=secret