在 Ubuntu 上连接 Laravel 数据库,通常分为 本地数据库(MySQL / PostgreSQL 等) 和 远程数据库 两种情况。下面以 MySQL + Laravel 为例,一步一步说明。
sudo apt update
sudo apt install php php-cli php-mysql php-mbstring php-xml php-curl php-zip unzip
sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable 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;
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=password
⚠️ 如果是 远程数据库,把
DB_HOST改成服务器 IP
php artisan migrate
如果没报错,说明连接成功 ✅
php artisan tinker
DB::connection()->getPdo();
有返回说明正常。
SQLSTATE[HY000] [2002] Connection refusedsudo systemctl status mysql
Access denied for userMySQL 默认只允许本地:
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'@'%';
如果你只是本地开发:
DB_CONNECTION=sqlite
DB_DATABASE=/absolute/path/database.sqlite
touch database/database.sqlite
php artisan migrate
如果你用的是 PostgreSQL / Docker / Laravel Sail / 远程云数据库,可以告诉我具体环境,我可以给你更精确的配置。