Laravel数据库连接配置有五种方法:一、通过.env文件设置DB_前缀变量并清缓存;二、直接修改config/database.php中connections数组;三、用php artisan tinker执行DB::connection()->getPdo()验证连通性;四、SQLite需设置DB_CONNECTION=sqlite及绝对路径;五、多库场景下在config中定义命名连接并在模型或查询中指定。

如果您在 Laravel 项目中无法连接数据库,则可能是由于 .env 文件中的数据库配置项未正确设置 或 config/database.php 中的默认连接未指向实际启用的驱动。以下是配置 Laravel 数据库连接的具体方法:
一、配置 .env 文件中的数据库参数
该方法通过环境变量覆盖 Laravel 默认数据库配置,是推荐且最常用的配置方式。Laravel 启动时会自动读取 .env 文件并加载对应值到配置中。
1、打开项目根目录下的 .env 文件。
2、找到以 DB_ 开头的配置项,按实际数据库信息修改:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_db_user
DB_PASSWORD=your_db_password
3、保存文件后,执行 php artisan config:clear 清除配置缓存,确保新配置生效。
二、修改 config/database.php 中的 connections 配置
该方法直接在配置文件中定义数据库连接细节,适用于多数据库环境或需要动态切换连接参数的场景,可绕过 .env 依赖。
1、打开 config/database.php 文件。
2、定位到 'connections' 数组内的 'mysql' 子数组。
3、将 host、port、database、username、password 等键值替换为实际数据库信息,例如:
'host' => '192.168.1.100',
'database' => 'production_db',
'username' => 'prod_user',
'password' => 'secure_password_2024',
4、若需使用其他驱动(如 pgsql、sqlite、sqlsrv),需确保已安装对应扩展,并将 DB_CONNECTION 值设为对应键名。
三、使用 Artisan 命令验证数据库连通性
该方法通过 Laravel 内置命令检测当前配置是否能成功建立数据库连接,不依赖外部工具,结果直观可靠。
1、在项目根目录下运行命令:php artisan tinker 进入交互式控制台。
2、输入以下代码并回车:
DB::connection()->getPdo();
3、若返回 PDO 实例对象,说明连接成功;若抛出 PDOException 异常,则表示连接失败,需检查凭证或网络可达性。
四、为 SQLite 配置轻量级数据库连接
该方法适用于本地开发或测试环境,无需独立数据库服务,直接使用文件存储,配置简洁且启动快速。
1、确保 database/database.sqlite 文件存在且 Web 服务器有读写权限。
2、在 .env 文件中设置:
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/to/your/project/database/database.sqlite
3、注释或删除 DB_HOST、DB_PORT、DB_USERNAME、DB_PASSWORD 等 MySQL/PostgreSQL 专属配置项。
4、运行 php artisan migrate 测试迁移是否可执行。
五、配置多个数据库连接并动态切换
该方法用于同一应用中需同时访问主库与从库、或不同业务模块使用独立数据库的场景,通过命名连接实现路由分离。
1、在 config/database.php 的 'connections' 数组中新增一个连接配置,例如:
'mysql_read' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL_READ'),
'host' => env('DB_READ_HOST', '127.0.0.1'),
'database' => env('DB_READ_DATABASE', 'forge'),
'username' => env('DB_READ_USERNAME', 'forge'),
'password' => env('DB_READ_PASSWORD', ''),
],
2、在模型中指定连接:protected $connection = 'mysql_read';
3、在查询构造器中临时切换:DB::connection('mysql_read')->table('users')->get();


















