在 CentOS 下,如果 Laravel 数据库连接失败,请按照以下步骤进行排查和解决:
确保已安装并启动 MySQL 或 MariaDB 服务:
sudo systemctl start mysqld
sudo systemctl enable mysqld
或者对于 MariaDB:
sudo systemctl start mariadb
sudo systemctl enable mariadb
检查数据库配置文件 .env
:
打开 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
请将 your_database_name
、your_database_user
和 your_database_password
替换为实际的数据库名称、用户名和密码。
创建数据库和用户并授权:
使用 MySQL 或 MariaDB 命令行工具登录数据库,并创建一个新的数据库和用户,然后为用户授权访问数据库。例如:
mysql -u root -p
输入密码后,执行以下 SQL 语句:
CREATE DATABASE your_database_name;
CREATE USER 'your_database_user'@'localhost' IDENTIFIED BY 'your_database_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_database_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
请将 your_database_name
、your_database_user
和 your_database_password
替换为实际的数据库名称、用户名和密码。
检查防火墙设置:
如果你的数据库服务运行在远程服务器上,请确保防火墙允许访问数据库端口(通常是 3306)。例如,使用以下命令打开端口:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
检查 SELinux 设置:
如果 SELinux 配置过于严格,可能会阻止 Laravel 连接数据库。你可以尝试临时关闭 SELinux 进行测试:
sudo setenforce 0
如果这解决了问题,你可以考虑调整 SELinux 策略以允许 Laravel 连接数据库,或者将其设置为 permissive 模式(不推荐):
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
按照以上步骤进行排查和解决,应该可以解决 CentOS 下 Laravel 数据库连接失败的问题。如果问题仍然存在,请提供更多详细信息以便进一步分析。