温馨提示×

laravel怎样连debian数据库

小樊
41
2026-10-14 02:05:20
栏目: 智能运维

在 Laravel 中连接 Debian 上的数据库(通常是 MySQL / MariaDB / PostgreSQL),核心就是:

1. Debian 上先装好数据库并允许连接
2. 配置 Laravel 的 .env 文件
3. 测试连接

下面以 Debian + MySQL / MariaDB 为例(最常见),其他数据库类似。


一、Debian 上准备数据库

1. 安装 MySQL / MariaDB

sudo apt update
sudo apt install mariadb-server

2. 启动并设置开机自启

sudo systemctl start mariadb
sudo systemctl enable mariadb

3. 创建数据库和用户

CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'laravel_user'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'%';

FLUSH PRIVILEGES;

⚠️ 如果 Laravel 和数据库在同一台 Debian 上,@'localhost' 也可以
⚠️ 如果不在同一台,@'%' 并开放端口


二、Debian 数据库允许远程连接(如需要)

1. 修改配置文件

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

找到:

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0

2. 重启数据库

sudo systemctl restart mariadb

3. 开放防火墙(如有)

sudo ufw allow 3306

三、Laravel 配置数据库连接

1. 修改 .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1        # 远程写 Debian 的 IP
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=password

2. 清除配置缓存

php artisan config:clear

四、测试连接

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

无报错说明连接成功 ✅

或运行迁移测试:

php artisan migrate

五、常见问题

❌ Access denied

  • 用户名/密码错
  • 用户 host 不匹配(localhost vs %)

❌ Connection refused

  • Debian 防火墙
  • bind-address 没改
  • DB_HOST 写错

❌ SQLSTATE[HY000] [2002]

  • 数据库没启动
  • 端口不对

六、其他数据库

数据库 DB_CONNECTION
PostgreSQL pgsql
SQLite sqlite
SQL Server sqlsrv

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

  • Laravel 和数据库是否在同一台 Debian?
  • 用的是 MySQL / MariaDB / PostgreSQL?
  • 是否是 Docker?

我可以直接给你一份 精确配置示例。

0 踩