温馨提示×

ubuntu怎么连接laravel数据库

小樊
47
2026-10-25 03:47:24
栏目: 智能运维

在 Ubuntu 上连接 Laravel 数据库,通常分为 本地数据库(MySQL / PostgreSQL 等) 和 远程数据库 两种情况。下面以 MySQL + Laravel 为例,一步一步说明。


一、准备工作(Ubuntu 环境)

1. 安装 PHP 和必要扩展

sudo apt update
sudo apt install php php-cli php-mysql php-mbstring php-xml php-curl php-zip unzip

2. 安装并启动 MySQL

sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql

3. 配置 MySQL 用户和数据库

sudo mysql -u root
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

二、Laravel 项目配置数据库连接

1. 进入 Laravel 项目目录

cd /var/www/laravel

2. 配置 .env 文件

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


三、测试 Laravel 是否连接成功

方法 1:运行迁移

php artisan migrate

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

方法 2:Tinker 测试

php artisan tinker
DB::connection()->getPdo();

有返回说明正常。


四、常见连接错误及解决办法

1. SQLSTATE[HY000] [2002] Connection refused

  • MySQL 没启动
sudo systemctl status mysql

2. Access denied for user

  • 用户名 / 密码错误
  • 用户权限不足
  • host 不匹配(localhost vs 127.0.0.1)

3. 远程连接失败

MySQL 默认只允许本地:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0

然后:

sudo systemctl restart mysql

并授权:

GRANT ALL ON laravel_db.* TO 'laravel_user'@'%';

五、使用 SQLite(更简单)

如果你只是本地开发:

DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/database.sqlite
touch database/database.sqlite
php artisan migrate

如果你用的是 PostgreSQL / Docker / Laravel Sail / 远程云数据库,可以告诉我具体环境,我可以给你更精确的配置。

0 踩