在 Linux 下使用 Laravel 连接数据库,通常分为 配置、环境、测试 三步。下面以最常见的 MySQL 为例说明(PostgreSQL / SQLite 类似)。
以 MySQL 为例:
# 安装(如未安装)
sudo apt update
sudo apt install mysql-server
# 启动
sudo systemctl start mysql
sudo systemctl enable mysql
# 登录
sudo 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(可选)默认值一般不用改:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
],
php artisan tinker
DB::connection()->getPdo();
无报错即连接成功。
php artisan migrate
如果能成功创建表,说明连接正常。
pdo_mysqlsudo apt install php-mysql
sudo systemctl restart apache2 # 或 php-fpm
sudo chown -R www-data:www-data storage bootstrap/cache
bind-address = 0.0.0.0'user'@'%'DB_CONNECTION=sqlite
DB_DATABASE=/绝对路径/database.sqlite
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=laravel_db
DB_USERNAME=postgres
DB_PASSWORD=password
如果你告诉我:
我可以给你更精确的步骤或排错方案。