CentOS 上的 Laravel 数据库连接失败可能有以下几个原因:
- 配置文件错误:请检查 Laravel 项目的
.env
文件中的数据库配置信息是否正确。例如:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_database_user DB_PASSWORD=your_database_password
确保这些值与您的实际数据库设置相匹配。
- 数据库服务未启动:请确保您的 MySQL 或其他数据库服务正在运行。您可以使用以下命令来检查和启动数据库服务:
# 对于 MySQL sudo systemctl status mysqld sudo systemctl start mysqld # 对于 MariaDB sudo systemctl status mariadb sudo systemctl start mariadb
-
防火墙设置:如果您的数据库服务器和 Laravel 应用程序部署在不同的服务器上,请确保防火墙允许数据库端口(通常是 3306)的通信。
-
数据库用户权限:请确保数据库用户具有足够的权限访问指定的数据库。您可以使用以下命令来检查和修改用户权限:
# 登录到 MySQL mysql -u root -p # 检查用户权限 SHOW GRANTS FOR 'your_database_user'@'your_database_host'; # 如果需要,授予权限 GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_database_user'@'your_database_host'; FLUSH PRIVILEGES;
- SELinux 设置:如果您的 CentOS 系统启用了 SELinux,可能需要调整相关策略以允许 Laravel 连接数据库。您可以尝试临时关闭 SELinux 来测试是否是这个问题:
sudo setenforce 0
如果确定是 SELinux 导致的问题,可以参考 CentOS 官方文档 调整 SELinux 策略。
请逐一排查这些原因,找到并解决导致 Laravel 数据库连接失败的问题。