在 CentOS 上让 Laravel 连接数据库,常见的是 MySQL / MariaDB。下面按完整流程说明,从系统环境到 Laravel 配置。
sudo yum install -y mariadb mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
按提示设置 root 密码、删除测试库等。
登录数据库:
mysql -u root -p
创建数据库和用户:
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Laravel 需要:
pdo 和 pdo_mysqlsudo yum install -y epel-release
sudo yum install -y yum-utils
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php81
sudo yum install -y php php-cli php-fpm php-mysql php-pdo php-mbstring php-xml php-curl
✅ 检查扩展:
php -m | grep pdo
应看到:
pdo
pdo_mysql
进入 Laravel 项目目录:
cd /var/www/laravel
.env 文件DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=strong_password
php artisan tinker
执行:
DB::connection()->getPdo();
✅ 返回 PDO 对象说明连接成功。
SQLSTATE[HY000] [2002] No such file or directory原因:使用了 localhost
✅ 解决:
DB_HOST=127.0.0.1
Access denied for user✅ 检查:
SELECT user, host FROM mysql.user;
php -m | grep pdo
✅ 安装:
sudo yum install php-mysql
如果数据库不在本机:
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
.env 配置APP_ENV=production
APP_DEBUG=false
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=strong_password
如果你使用的是:
可以告诉我,我可以给你更精确的配置方案。