下面以 Debian + Laravel 为例,系统说明如何配置数据库(以 MySQL / MariaDB 为主,也会提 PostgreSQL)。
sudo apt update
sudo apt install mariadb-server -y
# 或
sudo apt install mysql-server -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
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;
EXIT;
php -v
# PHP 8.1 示例
sudo apt install php8.1-mysql
# PostgreSQL
sudo apt install php8.1-pgsql
sudo systemctl restart apache2
# 或
sudo systemctl restart php8.1-fpm
.envDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=password
⚠️ 不要用 root 用户跑 Laravel
config/database.php通常无需修改,默认即可:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
],
php artisan tinker
DB::connection()->getPdo();
无报错即成功。
php artisan migrate
SQLSTATE[HY000] [2002] Connection refusedDB_HOST 写错(本地用 127.0.0.1 比 localhost 稳)sudo chown -R www-data:www-data storage bootstrap/cache
DB_HOST=远程IP
DB_PORT=3306
并允许远程用户连接。
sudo apt install postgresql
sudo -u postgres createuser laravel_user
sudo -u postgres createdb laravel_db
.env
DB_CONNECTION=pgsql
如果你愿意,我可以按你的 Debian 版本 / PHP 版本 / 数据库类型给你一份精确命令。