检查数据库服务状态
使用命令 sudo systemctl status mysql(MySQL)或 sudo systemctl status postgresql(PostgreSQL)确认服务是否运行,未运行则启动:
sudo systemctl start mysql # MySQL
sudo systemctl start postgresql # PostgreSQL
验证.env配置
确保 .env 文件中数据库配置正确(如 DB_CONNECTION=mysql、DB_HOST=127.0.0.1、DB_PORT=3306 等),修改后需清除缓存:
php artisan config:clear
检查数据库权限
确保数据库用户有访问权限,可通过以下命令授予权限(以MySQL为例):
sudo mysql -u root -p
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
排查防火墙设置
若数据库与Laravel不在同一服务器,需开放数据库端口(如MySQL的3306):
sudo ufw allow 3306/tcp
sudo ufw reload
确认PHP扩展已安装
安装对应数据库的PHP扩展(如MySQL需 php-mysql):
sudo apt-get install php-mysql # MySQL
sudo apt-get install php-pgsql # PostgreSQL
sudo service apache2 restart # 重启Web服务器
查看日志定位问题
检查Laravel日志 storage/logs/laravel.log 或数据库日志(如MySQL的 /var/log/mysql/error.log),获取具体错误信息。