我有使用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' => '',
),
任何人都可以指导我做错的地方吗?
注意:在提问之前,我尝试通过更新作曲家更新以及大多数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";
?>
我将成功连接消息
答案 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中添加“” 因此,
答案 12 :(得分:0)
听起来很明显,但请检查数据库的凭据。
答案 13 :(得分:0)
我将.env中的这一行DB_HOST = 127.0.0.1更改为DB_HOST = localhost,它对我有用。
答案 14 :(得分:0)
我遇到了类似的问题,密码是此类通信中的主要问题,请参见下面的图片,在更改密码,php artisan服务并重新加载我的视图后,我解决了该问题。它起作用了。
请登录mysql或phpmyadmin并更改密码。 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