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

时间:2015-04-26 09:06:34

标签: php mysql laravel-4

我有一个Laravel 4的应用程序,它在localhost中正确运行, 但当我把它上传到我的主机时,我收到了错误。

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'),
));

4 个答案:

答案 0 :(得分:4)

这对我有用:

php artisan config:clear

即使我更改了config文件中的.env详细信息,我也收到了拒绝访问权限错误。运行上述命令将清除配置缓存文件,因此laravel将从.env文件中读取新数据。

答案 1 :(得分:3)

您必须找到数据库主机,数据库名称,数据库用户名和数据库密码的凭据。 (如果表的任何前缀也是如此),然后用当前凭证替换它。

在ENV变量中使用环境和存储值的概念:

  

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

您可以在class DbBackend(EmailBackend): def send_messages(self, email_messages): if not email_messages: return for message in email_messages: msg = Message() msg.email = message msg.save() super(DbBackend, self).send_messages(email_messages) 中将Env变量存储为数组,并将这些变量作为.{ENV_NAME}.env.php访问。

答案 2 :(得分:2)

检查你的mysql数据库运行是否完美。然后在没有密码的mysql中检查db user root并重新启动服务器。

答案 3 :(得分:2)

也许您应该在env中为密码添加双引号:

# 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