必须执行 php artisan config:clear 清缓存,DB_DATABASE 值需与 phpMyAdmin 中库名逐字符一致(含大小写、空格),且 root 用户须授权 'root'@'127.0.0.1' 并刷新权限。

改了 .env 但 Laravel 还连不上 phpMyAdmin 里刚建的库,基本是缓存没清、库名写错、或用户权限不匹配这三件事卡住了。
php artisan config:clear 必须执行,否则改一百遍 .env 都白搭
Laravel 启动后会把 .env 的值一次性读进内存并缓存,后续不再重新加载。你改完 DB_DATABASE=your_new_db,不手动清缓存,Laravel 仍用旧值连库。
- 在项目根目录运行:
php artisan config:clear - 如果之前执行过
php artisan config:cache(比如部署时),还得补一句:php artisan config:cache - 验证是否生效:进
php artisan tinker,输入config('database.connections.mysql.database'),返回值必须和.env里写的完全一致
DB_DATABASE 值必须和 phpMyAdmin 中显示的库名逐字符匹配(含大小写)
Linux 环境下 MySQL 默认开启 lower_case_table_names=0,库名严格区分大小写。你在 phpMyAdmin 里建的是 MyAppDB,.env 里写成 myappdb 或 myappdb (末尾空格)都会失败。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
- 打开 phpMyAdmin,左侧数据库列表里点开「+」展开,看清库名真实拼写(注意有无空格、大小写、下划线)
-
.env中的DB_DATABASE值必须和它**完全一样**,建议复制粘贴,别手打 - 不要依赖「自动创建库」——Laravel 不会帮你建库,
php artisan migrate只建表,库必须提前存在
root 用户默认只允许 'root'@'localhost',而 Laravel 用 127.0.0.1 连,属于不同 host
Laragon 或本地 MySQL 中,root 用户常被限制为仅允许从 localhost 连接。但 Laravel 的 DB_HOST=127.0.0.1 触发的是 TCP 连接,MySQL 把它识别为 'root'@'127.0.0.1',权限记录不存在,直接拒绝。
- 用 Laragon 自带的终端或 phpMyAdmin 登录 MySQL,执行:
SELECT Host, User FROM mysql.user WHERE User = 'root';,确认是否有127.0.0.1这条记录 - 如果没有,执行授权:
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '';(空密码)或GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION; - 再执行:
FLUSH PRIVILEGES; - 若用 MySQL 8+,还要检查认证插件:
ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '';
最容易被忽略的是:Laravel 连接时根本不会告诉你「用户权限不足」,而是统一报 SQLSTATE[HY000] [1045] Access denied 或直接超时;得靠 SELECT Host, User 和 config() 返回值交叉验证,才能准确定位是缓存、拼写还是权限问题。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










