在 Ubuntu 下使用 ThinkPHP 连接数据库,主要分为 安装环境、配置数据库、测试连接 几个步骤。下面以 ThinkPHP 6 / 8(目前主流版本)为例说明。
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-pdo php-mbstring php-xml php-curl
检查扩展:
php -m | grep -E "pdo|mysql"
sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
设置数据库密码(可选):
sudo mysql_secure_installation
创建数据库和用户:
CREATE DATABASE tp_db DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'tp_user'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON tp_db.* TO 'tp_user'@'localhost';
FLUSH PRIVILEGES;
编辑:
config/database.php
示例配置:
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'tp_db',
'username' => 'tp_user',
'password' => '123456',
'hostport' => '3306',
'charset' => 'utf8mb4',
'prefix' => '',
],
],
];
⚠️ 如果是 生产环境,建议使用
.env文件
.env 文件:
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_NAME=tp_db
DB_USER=tp_user
DB_PASS=123456
DB_PORT=3306
DB_CHARSET=utf8mb4
config/database.php:
'hostname' => env('DB_HOST', '127.0.0.1'),
'database' => env('DB_NAME', ''),
'username' => env('DB_USER', ''),
'password' => env('DB_PASS', ''),
use think\facade\Db;
public function test()
{
$res = Db::query("SELECT VERSION()");
dump($res);
}
访问路由,如果能看到 MySQL 版本信息,说明连接成功 ✅
$user = Db::name('user')->find(1);
dump($user);
127.0.0.1 不用 localhost)sudo apt install php-mysql
sudo systemctl restart php-fpm
确保数据库用户允许 localhost 连接
ThinkPHP 在 Ubuntu 连接数据库核心就三步:
如果你用的是 ThinkPHP 5 / 宝塔 / Docker / SQLite,可以告诉我,我可以给你对应方案。