用户'root'@'localhost'被拒绝访问 - Laravel

10

我有一个使用Laravel 4开发的应用程序,在本地主机上可以正常运行,但是当我将其上传到主机上时,收到了错误提示。

app>config>database.php文件如下:

'mysql' => array(
        'driver'    => 'mysql',
        'host'      => '127.0.0.1',
        'database'  => 'forum',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

bootstrap>start.php 的内容为:

$env = $app->detectEnvironment(array(
'local' => array('homestead'),
));

1
您的用户名或密码不正确。请查阅您的主机支持页面/文档,以了解如何登录您的数据库。如果仍然无法登录,请使用支持服务--这就是它存在的目的。 - Sverri M. Olsen
5个回答

9
这对我有用:

这对我有用:

php artisan config:clear

尽管我已经在.env文件中更改了config详细信息,但仍然收到访问被拒绝的错误。运行上述命令将清除配置缓存文件,因此laravel将从.env文件中读取最新数据。


1
对我有用,谢谢! - Bhargav Nanekalva
3
如果我没记错的话,这个命令只在 Laravel 5 中可用。 - briankip

3
你必须找出数据库主机的凭据,数据库名称、数据库用户名和数据库密码(如果有表前缀也要找到),然后将其替换为当前凭据。
使用环境概念并将值存储在ENV变量中:

http://laravel.com/docs/4.2/configuration

你可以将环境变量存储为数组在 .{ENV_NAME}.env.php 中,并使用 $_ENV['variable_name'] 访问这些变量。


请明确解释一下,我不了解Laravel 4中的环境,谢谢。 - atf.sgf
我编辑了我的database.php文件,并为DatabaseName、UserName添加了前缀,但是我收到了以下错误消息:SQLSTATE[HY000] [2054] 服务器要求客户端使用未知的身份验证方法!!! - atf.sgf

3
也许你应该在环境变量中为密码添加双引号:
# Config: database
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD="db_password"

并且

php artisan config:clear

2
使用双引号将我的DB_PASSWORD值括起来解决了我的问题。似乎一些特殊字符必须用双引号包装以进行正确的编码。这在Laravel 7.x中很重要。 - Robert Schwindaman

2

检查您的 MySQL 数据库是否正常运行。然后使用没有密码的 root 用户在 MySQL 中检查您的数据库并重新启动服务器。


是的,根用户有密码,我也编辑了database.php文件,但是我还是遇到了这个错误...! - atf.sgf

0

Laravel访问被拒绝,用户'user'@'localhost'(使用密码:YES)

在.env文件中,我在'user'和'password'行中添加了' ':

DB_USERNAME='user'

DB_PASSWORD='password'

对我有用!

运行 -> php artisan optimize:clear

祝你好运 <3


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接