温馨提示×

debian下laravel怎么连数据库

小樊
38
2026-09-05 08:57:01
栏目: 智能运维

在 Debian 下让 Laravel 连接数据库,一般步骤如下(以 MySQL / MariaDB 为例,也适用于 PostgreSQL 等):


一、安装数据库(Debian)

1. 安装 MySQL / MariaDB

sudo apt update
sudo apt install mariadb-server -y
# 或
sudo apt install mysql-server -y

2. 启动并设置开机自启

sudo systemctl enable --now mariadb

3. 初始化安全配置(可选)

sudo mysql_secure_installation

二、创建数据库和用户

sudo mysql -u root -p
CREATE DATABASE laravel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'your_password';

GRANT ALL PRIVILEGES ON laravel.* TO 'laravel'@'localhost';

FLUSH PRIVILEGES;
EXIT;

三、安装 PHP 及数据库扩展

Laravel 需要 PHP 及对应数据库驱动:

sudo apt install php php-cli php-mysql php-mbstring php-xml php-curl php-zip unzip -y

检查 PHP 版本(Laravel 10 需要 PHP 8.1+):

php -v

四、配置 Laravel 数据库连接

1. 修改 .env 文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=your_password

⚠️ 如果你用 SQLite

DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/database.sqlite

2. 生成配置缓存(可选)

php artisan config:clear
php artisan config:cache

五、测试数据库连接

方法 1:迁移测试

php artisan migrate

方法 2:Tinker 测试

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

无报错即连接成功。


六、常见问题(Debian 常见)

1. SQLSTATE[HY000] [2002] No such file or directory

原因:使用了 localhost 但 MySQL 用 socket
✅ 解决:

DB_HOST=127.0.0.1

2. 缺少 PHP 扩展

sudo apt install php-mysql
sudo systemctl restart apache2  # 或 php-fpm

3. 权限问题

确保:

  • 数据库用户有访问权限
  • .env 文件存在且未被忽略

七、示例(PostgreSQL)

sudo apt install postgresql php-pgsql
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=postgres
DB_PASSWORD=your_password

如果你告诉我:

  • Laravel 版本
  • 数据库类型(MySQL / PostgreSQL / SQLite)
  • Web 服务(Nginx / Apache)

我可以给你 更精确的配置示例

0