在 Debian 下让 Laravel 连接数据库,一般步骤如下(以 MySQL / MariaDB 为例,也适用于 PostgreSQL 等):
sudo apt update
sudo apt install mariadb-server -y
# 或
sudo apt install mysql-server -y
sudo systemctl enable --now mariadb
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;
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
.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
php artisan config:clear
php artisan config:cache
php artisan migrate
php artisan tinker
DB::connection()->getPdo();
无报错即连接成功。
SQLSTATE[HY000] [2002] No such file or directory原因:使用了 localhost 但 MySQL 用 socket
✅ 解决:
DB_HOST=127.0.0.1
sudo apt install php-mysql
sudo systemctl restart apache2 # 或 php-fpm
确保:
.env 文件存在且未被忽略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
如果你告诉我:
我可以给你 更精确的配置示例。