在 CentOS 上使用 Laravel 连接数据库,通常分为以下几个步骤(以 MySQL 为例,其他数据库类似)。
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
mysql -u root -p
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
.env 文件在 Laravel 项目根目录:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=password
⚠️ 如果是远程数据库,把
DB_HOST改成数据库服务器 IP
config/database.php一般无需修改,Laravel 默认读取 .env:
'default' => env('DB_CONNECTION', 'mysql'),
php artisan tinker
DB::connection()->getPdo();
无报错即连接成功。
routes/web.php
Route::get('/db-test', function () {
return DB::select('SELECT 1');
});
访问:
http://your-server-ip/db-test
sudo setsebool -P httpd_can_network_connect_db on
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
sudo yum install php-mysqlnd
sudo systemctl restart php-fpm
| 数据库 | DB_CONNECTION |
|---|---|
| MySQL | mysql |
| PostgreSQL | pgsql |
| SQLite | sqlite |
| SQL Server | sqlsrv |
如果你用的是 Laravel + Nginx + PHP-FPM 或 Docker,可以告诉我,我可以给你更具体的配置示例。