温馨提示×

ubuntu ThinkPHP怎样连接数据库

小樊
45
2026-10-19 05:25:30
栏目: 编程语言

在 Ubuntu 上使用 ThinkPHP 连接数据库,通常步骤如下(以 ThinkPHP 6 为例,5.1 类似):


一、前提条件

  1. Ubuntu 已安装:
    • PHP(建议 7.4+)
    • MySQL / MariaDB
    • Nginx 或 Apache(可选)
  2. ThinkPHP 项目已创建

二、安装数据库扩展(如果未安装)

sudo apt update
sudo apt install php-mysql

安装后重启服务:

sudo systemctl restart php-fpm
# 或
sudo systemctl restart apache2

三、配置数据库连接

ThinkPHP 的数据库配置文件在:

config/database.php

示例(MySQL):

return [
    // 数据库类型
    'type'     => 'mysql',
    // 服务器地址
    'hostname' => '127.0.0.1',
    // 数据库名
    'database' => 'test_db',
    // 用户名
    'username' => 'root',
    // 密码
    'password' => 'your_password',
    // 端口
    'hostport' => '3306',
    // 字符集
    'charset'  => 'utf8mb4',
];

四、在代码中连接数据库

1️⃣ 使用 Db 类(原生方式)

use think\facade\Db;

$list = Db::table('user')->select();
print_r($list);

2️⃣ 使用模型

namespace app\model;

use think\Model;

class User extends Model
{
    protected $table = 'user';
}

调用:

$user = \app\model\User::find(1);

五、常见问题排查

❌ 连接失败

  • 检查 MySQL 是否运行:
sudo systemctl status mysql
  • 检查防火墙:
sudo ufw allow 3306
  • 确认 MySQL 允许本地连接

❌ 权限问题

GRANT ALL PRIVILEGES ON test_db.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

六、远程数据库(可选)

如果是远程数据库:

'hostname' => '远程IP',

并确保:

CREATE USER 'user'@'%' IDENTIFIED BY 'password';
GRANT ALL ON db.* TO 'user'@'%';

如果你用的是 ThinkPHP 5.1 / 8.0 / 特定版本,或者连接的是 SQLite / PostgreSQL,可以告诉我,我可以给你对应配置示例。

0 踩