温馨提示×

Laravel如何连Debian数据库

小樊
39
2026-08-01 11:17:48
栏目: 智能运维

在 Laravel 中连接 Debian 服务器上的数据库,本质上和普通数据库连接一样,关键是:

  1. 数据库在 Debian 上已安装并运行
  2. 数据库允许远程或本地连接
  3. Laravel 的 .envconfig/database.php 配置正确

下面以 MySQL / MariaDB 为例(Laravel 最常用),PostgreSQL 也可以类比。


一、在 Debian 上准备数据库

1️⃣ 安装数据库(如未安装)

sudo apt update
sudo apt install mariadb-server

启动并设置开机自启:

sudo systemctl start mariadb
sudo systemctl enable mariadb

2️⃣ 创建数据库和用户

登录数据库:

sudo mysql -u root -p

创建数据库:

CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建用户并授权(推荐方式):

CREATE USER 'laravel_user'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'%';
FLUSH PRIVILEGES;

% 表示允许远程连接
如果是本机 Laravel,可用 'laravel_user'@'localhost'


3️⃣ 允许远程连接(如需要)

编辑 MySQL 配置:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

找到:

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0

重启数据库:

sudo systemctl restart mariadb

二、Laravel 配置数据库连接

1️⃣ 编辑 .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1        # 本地
# DB_HOST=Debian服务器IP   # 远程
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=strong_password

本地 Laravel + 本地 Debian 数据库

DB_HOST=127.0.0.1

Laravel 在另一台服务器

DB_HOST=192.168.1.100

2️⃣ 检查 config/database.php

一般无需修改,确认如下即可:

'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', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
],

三、测试连接

1️⃣ 清除配置缓存

php artisan config:clear

2️⃣ 测试数据库

php artisan tinker
DB::connection()->getPdo();

✅ 无报错说明连接成功


四、常见问题排查

SQLSTATE[HY000] [2002] Connection refused

  • Debian 防火墙阻止 3306
  • bind-address 未改为 0.0.0.0
sudo ufw allow 3306

Access denied for user

  • 用户名 / 密码错误
  • 用户 host 不匹配
SELECT user, host FROM mysql.user;

Unknown database

  • 数据库未创建
  • .envDB_DATABASE 写错

五、PostgreSQL(简要)

sudo apt install postgresql
sudo -u postgres createuser laravel_user
sudo -u postgres createdb laravel_db -O laravel_user

.env

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=password

六、总结一句话

Laravel 连接 Debian 数据库 = Debian 上数据库允许连接 + Laravel .env 配置正确

如果你愿意,可以告诉我:

  • Laravel 和数据库是否在同一台服务器?
  • 使用的是 MySQL / PostgreSQL / SQLite?
  • 是否 Docker 环境?

我可以给你更精确的配置方案 ✅

0