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:SQLSTATE [28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝
用户 'user'@'localhost' Laravel 5.8 的访问被拒绝
在 laravel 4.2 中,用户 'root'@'localhost' 的 Laravel 访问被拒绝(使用密码:YES)