温馨提示×

CentOS如何连接Laravel数据库

小樊
42
2026-08-29 16:31:43
栏目: 智能运维

在 CentOS 上让 Laravel 连接数据库,常见的是 MySQL / MariaDB。下面按完整流程说明,从系统环境到 Laravel 配置。


一、在 CentOS 上安装数据库(以 MariaDB 为例)

1. 安装 MariaDB

sudo yum install -y mariadb mariadb-server

2. 启动并设置开机自启

sudo systemctl start mariadb
sudo systemctl enable mariadb

3. 初始化数据库(建议)

sudo mysql_secure_installation

按提示设置 root 密码、删除测试库等。


二、创建 Laravel 使用的数据库和用户

登录数据库:

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;

三、安装 PHP 及数据库扩展

Laravel 需要:

  • PHP ≥ 8.0
  • pdopdo_mysql

1. 安装 PHP(示例:PHP 8.1)

sudo 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 数据库连接

进入 Laravel 项目目录:

cd /var/www/laravel

1. 编辑 .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

2. 测试数据库连接

php artisan tinker

执行:

DB::connection()->getPdo();

✅ 返回 PDO 对象说明连接成功。


五、常见错误及排查

❌ 1. SQLSTATE[HY000] [2002] No such file or directory

原因:使用了 localhost

✅ 解决:

DB_HOST=127.0.0.1

❌ 2. Access denied for user

  • 用户名或密码错误
  • 用户未授权

✅ 检查:

SELECT user, host FROM mysql.user;

❌ 3. PHP 没有 pdo_mysql

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

如果你使用的是:

  • 远程数据库
  • Docker
  • Nginx + PHP-FPM
  • CentOS 8 / Rocky / AlmaLinux

可以告诉我,我可以给你更精确的配置方案。

0