温馨提示×

linux laravel怎样连接数据库

小樊
42
2026-10-18 20:37:18
栏目: 智能运维

在 Linux + Laravel 环境下连接数据库,通常分为 配置数据库 → 测试连接 → 使用数据库 三步。下面以 MySQL 为例(最常见),其他数据库类似。


一、前置条件(Linux 上)

  1. 已安装数据库(如 MySQL / MariaDB)
sudo apt install mysql-server
  1. 已创建数据库和用户
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;

二、Laravel 配置数据库连接

方法 1:修改 .env(推荐)

编辑项目根目录下的 .env 文件:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=password

⚠️ 注意:

  • 修改 .env 后执行:
php artisan config:clear

方法 2:修改 config/database.php(不常用)

'connections' => [
    'mysql' => [
        'driver' => 'mysql',
        'host' => '127.0.0.1',
        'port' => 3306,
        'database' => 'laravel_db',
        'username' => 'laravel_user',
        'password' => 'password',
    ],
],

三、测试数据库是否连接成功

php artisan tinker

在 tinker 中执行:

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

如果 没有报错,说明连接成功。

或运行迁移测试:

php artisan migrate

四、使用数据库(示例)

1. 使用 Eloquent 模型

use App\Models\User;

$users = User::all();

2. 使用 Query Builder

use Illuminate\Support\Facades\DB;

$users = DB::table('users')->get();

五、常见问题排查(Linux)

1. 连接被拒绝

  • 数据库没启动
sudo systemctl status mysql
  • DB_HOST 写成 localhost 但用的是 socket(可改成 127.0.0.1)

2. 权限问题

SELECT host FROM mysql.user WHERE user='laravel_user';

3. PHP 缺少 PDO 扩展

sudo apt install php-mysql
sudo systemctl restart apache2  # 或 php-fpm

六、其他数据库支持

Laravel 支持:

  • MySQL / MariaDB
  • PostgreSQL
  • SQLite
  • SQL Server

只需修改 DB_CONNECTION 即可。


如果你用的是 Docker / Laravel Sail / 远程数据库 / 特定 Linux 发行版,可以告诉我,我可以给你更具体的配置。

0 踩