在 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=#Password
、DB_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 如何检查是不是有用户登录多重身份验证