You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel无法识别本地phpMyAdmin数据库问题求助

解决Laravel无法连接本地phpMyAdmin数据库&SQLSTATE[3D000]错误

嘿,我一眼就发现你配置里的核心问题——env()函数的用法完全错了!这也是导致你出现「SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected」错误的主要原因。

问题出在哪?

你现在的配置里写的是:

'host' => env('127.0.0.1'),
'database' => env('credito'),
'username' => env('root'),
'password' => env(''),

env()函数的参数应该是环境变量的名称,而不是直接写值。比如env('127.0.0.1')是在Laravel的环境变量里找名为127.0.0.1的变量,这显然不存在,所以Laravel根本拿不到正确的数据库信息,自然会报错“没选择数据库”。

正确的解决步骤

1. 修复config/database.php里的MySQL配置

把mysql连接部分改成下面这样——env()的第一个参数是.env文件里的变量名,第二个参数是默认值(如果环境变量不存在时用这个):

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

2. 检查并修改.env文件

确保项目根目录的.env文件里有正确的数据库配置(如果没有.env,复制.env.example并重命名为.env):

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

⚠️ 重点:一定要在phpMyAdmin里先创建好credito这个数据库!如果数据库本身不存在,哪怕配置全对也会报“没选择数据库”的错误。

3. 清除Laravel配置缓存

Laravel会缓存配置文件,修改配置后必须执行以下命令清除缓存:

php artisan config:cache

如果是开发环境,也可以用php artisan config:clear来清除缓存。

4. 测试数据库连接

打开终端,进入项目目录,执行:

php artisan tinker

然后输入:

DB::connection()->getPdo()

如果返回类似PDO Object (...)的内容,说明连接成功了;如果还有错误,再根据提示排查。

额外排查点

  • 确认本地MySQL服务正在运行(phpMyAdmin能正常访问的话,一般服务是正常的)
  • 检查credito数据库的拼写是否完全一致(Linux系统下MySQL数据库名大小写敏感,Windows不敏感)
  • 确认root用户确实没有密码,或者.env里的DB_PASSWORD和你的MySQL密码一致

内容的提问来源于stack exchange,提问作者user5272357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:50:54