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

Posted

技术标签:

【中文标题】在 laravel 4.2 中,用户 \'root\'@\'localhost\' 的 Laravel 访问被拒绝(使用密码:YES)【英文标题】:Laravel Access denied for user 'root'@'localhost' (using password: YES) in laravel 4.2在 laravel 4.2 中,用户 'root'@'localhost' 的 Laravel 访问被拒绝(使用密码:YES) 【发布时间】:2016-12-26 09:18:53 【问题描述】:

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

PDO 异常 (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'    => '',
        ),

谁能指导我哪里做错了?

注意:在提问之前,我尝试更新作曲家更新以及大多数 *** 答案。

更新

我已经通过创建 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";
?>

我将收到连接成功消息

【问题讨论】:

问起来可能有点愚蠢,但您是否尝试重新启动服务器?而不是使用 xampp,您可以使用 laravel 内置服务器并对其进行测试吗? @user3103915。我已经重新启动了服务器。但我没有尝试过 laravel 内置服务器 【参考方案1】:

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

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

在 .env 中我改变了:

DB_USERNAME=user
DB_PASSWORD=password

到:

DB_USERNAME='user'
DB_PASSWORD='password' 

为我工作!

【讨论】:

这也是 Laravel 8.41.0 中的解决方案。太棒了。 是的,在 Laravel 8 和 cPanel 中的工作就像一个魅力。谢谢 更改 .env 文件后执行 php artisan config:clear 以便从 .env 文件中获取新值。【参考方案2】:

DB_HOST="localhost" 为我工作。


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

DB_USERNAME="root"
DB_PASSWORD="#Password"

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

我刚刚在安装新的 Laravel 时遇到了同样的问题。 问题是我连接到我的 ubuntu localhost mysql 服务器,而不是连接到它自己的 IP 地址“192.168.10.10”上的 vagrant box 的 mysql 服务器。 我改成了那个,一切都很有魅力:)

【讨论】:

【参考方案6】:

试用 .ENV

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

删除缓存文件从 Root/boostrap/chache/files 并运行应用程序

【讨论】:

【参考方案7】:

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

【讨论】:

是的,我拥有所有特权。我正在使用 xampp 服务器。即使我已经测试过这种连接。 那么,您可以使用与 MySQL Workbench 或类似客户端相同的登录名/密码/主机连接到该数据库吗?如果是,请尝试运行php artisan config:clear 命令清除配置缓存。 ya.even 我自己也试过这个命令。我也重新启动了 xampp 服务器 'default' 选项在database.php 配置中的值是多少? env 文件中有 DB_CONNECTION 吗? 'default' => 'mysql',【参考方案8】:

试试这个

.env 文件

APP_ENV=local

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

config/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 文件并检查连接

【讨论】:

【参考方案9】:

我在 Laravel 5.6.33 中进行测试,我看到了这个错误:"Access denied for user 'root'@'localhost'",但用户名和密码是正确。 在这个版本中,我认为这是一个 BUG,我将 DB_HOST 从 127.0.0.1 更改为 localhost 并且可以正常工作!

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

【讨论】:

【参考方案10】:

我在使用宅基地学习laravel时遇到了同样的问题,当我尝试打开页面时出现了问题。它试图连接到数据库但被拒绝,尽管我可以使用 mysql 命令行连接到数据库。 问题是我有错误的假设,因为宅基地将 Web 服务器请求从客人转发到主机,同样的事情也与 myqsl 相同,但显然不是。 Homestead 有它自己的 mysql 服务,所以我的问题通过以下方式解决: - homestead ssh 进入来宾机器 - mysql -u root -p 连接mysql命令行,默认密码为“secret” - 创建数据库,但是你需要先修改你的密码,为方便起见,在你的主机上修改为和mysql root的密码相同的密码 - 退出 mysql cli 并 - php artisan migrate 创建表格 - 刷新你的浏览器,现在它应该可以连接到你的数据库了

【讨论】:

【参考方案11】:

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

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

所以检查数据库是否已更新所有内容,如果所有内容都正确。

如果没有解决则改变

DB_HOST=127.0.0.1 TO DB_HOST=localhost

【讨论】:

【参考方案12】:

确保您的.env 使用正确的端口号。如果您使用的是phpMyAdmin,则设置如下:

MariaDB defaults to 3306

MySQL defaults to 3308

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

【讨论】:

【参考方案13】:

我遇到了同样的问题。您应该将“”添加到 DB_USERNAME 和 DB_PASSWORD 所以,

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

【讨论】:

【参考方案14】:

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

【讨论】:

【参考方案15】:

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

【讨论】:

【参考方案16】:

我也遇到过类似的问题,密码是这种通信中的主要问题,见下图,我在更改密码后解决了,php artisan serve 然后重新加载我的视图。它奏效了。

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

【讨论】:

【参考方案17】:

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

【讨论】:

【参考方案18】:

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

DB_PASSWORD=secret

【讨论】:

以上是关于在 laravel 4.2 中,用户 'root'@'localhost' 的 Laravel 访问被拒绝(使用密码:YES)的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4.2 Eloquent 获取特定用户和特定角色

如何在 Laravel 4.2 中返回两次?

laravel 4.2 如何检查是不是有用户登录多重身份验证

在 Laravel 4.2 中保护视图的最有效方法是啥?

CentOS系统登陆root用户后发现提示符显示-bash-4.2#(已解决)

laravel 4.2 并记住我更新