Laravel中如何配置数据库连接_Laravel修改DB配置文件步骤【新手】

13次阅读

只需修改 .env 文件即可,laravel 启动时自动读取其中变量覆盖 config/database.php 的默认值,且官方推荐此方式最安全;修改后须运行 php artisan config:clear 清除配置缓存。

Laravel中如何配置数据库连接_Laravel修改DB配置文件步骤【新手】

直接改 .env 文件就行,不用碰 config/database.php —— 这是 Laravel 官方推荐且最安全的配置方式。硬改 PHP 配置文件不仅容易被 git 误提交,还会在多环境部署时引发连接错乱。

为什么只改 .env 就够了

Laravel 启动时会自动读取 .env 中的变量,并用它们覆盖 config/database.php 里的默认值(比如 'host' => env('DB_HOST', '127.0.0.1'))。只要 .env 存在且格式正确,PHP 配置文件就只是“兜底模板”。

  • DB_CONNECTION=mysql:决定用哪种驱动(mysql / pgsql / sqlite / sqlsrv
  • DB_HOST=127.0.0.1数据库服务器地址,本地开发填 127.0.0.1docker 环境可能要填容器名如 mysql
  • DB_PORT=3306:MySQL 默认端口postgresql5432,别写错
  • DB_DATABASE=laravel:数据库名,确保该库已手动创建(Laravel 不自动建库)
  • DB_USERNAME=rootDB_PASSword=:账号密码,空密码记得留空,不要写 ''NULL

改完后必须清缓存

环境变量修改不会实时生效,因为 Laravel 会把配置缓存到 bootstrap/cache/config.php。不清理会导致新配置完全不被加载。

php artisan config:clear

如果还连不上,顺手再清下路由和视图缓存:

php artisan cache:clear

注意:config:clear 不等于 cache:clear,前者只清配置缓存,后者清全部;生产环境慎用 cache:clear,避免短暂性能抖动。

常见连不上数据库的三个坑

不是配置写错,而是环境或权限问题更常导致失败:

  • MySQL 服务根本没启动(sudo service mysql status 查一下)
  • 用户没有远程访问权限(本地开发用 127.0.0.1 但 MySQL 账号只允许 localhost 登录,需执行 GRANT ALL ON *.* TO 'root'@'127.0.0.1'; FLUSH PRIVILEGES;
  • .env 文件末尾有多余空格或 bom 头(尤其 windows 编辑器保存时易产生),会导致 env() 解析失败,表现为 DB_HOST 变成 null

真正需要动 config/database.php 的情况极少,比如要用不同前缀区分多租户、或给某个连接加特殊 pdo 属性(如 'options' => [PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca.pem'])。日常开发,盯紧 .env 就行。

text=ZqhQzanResources