Laravel 数据库连接:用户访问被拒绝

Posted

技术标签:

【中文标题】Laravel 数据库连接:用户访问被拒绝【英文标题】:Laravel DataBase Connection: Access denied for user 【发布时间】:2017-09-12 10:37:16 【问题描述】:

我使用 .

在 Ampps(Windows 10)上安装 laravel。

它有效。

但现在我想连接到 mysql

我创建了一个“博客”数据库并更改了这两个文件: .env 文件:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD='mysql'

和 /config/database.php

  'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'blog'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'mysql'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

但当我想迁移时,我仍然收到以下消息:

C:\Program Files (x86)\Ampps\www\blog>php artisan 迁移

[照亮\数据库\查询异常] SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)(SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)

[PDO异常] SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)

【问题讨论】:

请附上错误信息,而不是张贴截图。 【参考方案1】:

密码应该是这个

DB_PASSWORD=mysql

不是这个

DB_PASSWORD='mysql'

【讨论】:

它在 namecheap 上对我有用。谢谢【参考方案2】:

你应该写这个

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

你的环境文件是

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=mysql

同时重启你的服务器。

【讨论】:

【参考方案3】:

首先将.env 文件中的密码从DB_PASSWORD='mysql' 更改为DB_PASSWORD=mysql,不带单引号。其次,您应该为您的数据库设置更安全的密码。

您应该授予 root 用户访问您的数据库的权限。

GRANT ALL PRIVILEGES ON blog.* TO 'root'@'localhost' identified by 'mysql';
FLUSH PRIVILEGES;

【讨论】:

这是给我的。我更改了服务器,db 用户可以读写但不能更改表。【参考方案4】:

尝试在命令下运行

php artisan cache:clear

这应该会更新保存在缓存中的设置。

【讨论】:

以上是关于Laravel 数据库连接:用户访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 5 中,用户 'homestead@localhost' 的访问被拒绝

无法修复 laravel 中用户宅基地的访问被拒绝

Laravel:SQLSTATE [28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝

用户 'user'@'localhost' Laravel 5.8 的访问被拒绝

PHP 工匠返回拒绝访问 Laravel 中的数据库连接

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