【Webman+MySQL教程三】连接 MySQL:webman/database 安装与配置
果子发表于:2026-10-04 14:10:36浏览:1次
本篇目标
给 Webman 项目接上 MySQL:安装组件、设计测试表、写好配置、验证连接,并处理常驻内存模式下常见的连接断开问题。
一、安装组件
Webman 官方推荐通过 webman/database 集成 Illuminate Database(即 Laravel 的 ORM/查询构建器):
composer require webman/database
安装后会自动生成 config/database.php(若无则手动创建,见下)。
二、准备数据库
用 MySQL 客户端或 Navicat 建库建表(剩下两篇都用这张表):
CREATE DATABASE webman_demo DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
USE webman_demo;
CREATE TABLE `student` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '姓名',
`class_name` varchar(50) NOT NULL COMMENT '班级',
`score` decimal(5,1) NOT NULL DEFAULT '0.0' COMMENT '成绩',
`created_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生表';
INSERT INTO student(name, class_name, score) VALUES
('张三','党校1班',88.5),
('李四','党校1班',92.0),
('王五','党校1班',76.0);
三、配置 database.php
关键点:Webman 是长驻进程,连接配置从环境变量或写死均可。示例:
<?php
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => '3306',
'database' => 'webman_demo',
'username' => 'root',
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'prefix' => '',
'timezone' => '+08:00',
],
],
];
env() 读取的是项目根目录 .env 文件,生产环境建议密码放 .env,不要写进代码库。
四、验证连接
在某个控制器里写一段临时测试代码:
use support\\Db;
public function testDb(Request $request)
{
$rows = Db::select('SELECT * FROM student');
return json(['count' => count($rows), 'rows' => $rows]);
}
访问后若返回 3 条数据,说明 MySQL 已经接好。support\Db 是 facade,等价于 Webman\\Database\\Db。
五、常驻内存下的连接问题
MySQL 默认 wait_timeout 为 8 小时,空闲后连接会被服务端掐断。Webman 进程不退出,复用的连接可能失效。表现是偶发 MySQL server has gone away。解决办法:
- 升级
webman/database到较新版本,内部已处理重连; - 或在
config/database.php中调小连接复用时间、启用options中的PDO::ATTR_PERSISTENT时格外谨慎; - 生产环境建议用
webman/db(连接池)方案替代直接 PDO。
小结
本篇完成了组件安装、建库建表、连接配置与验证。下一篇引入 Model 模型类,用 ORM 方式做学生表的增删改查。
栏目分类全部>
推荐文章
- OpenClaw 记忆系统:AGENTS.md / USER.md / MEMORY.md 详解
- Embedding 嵌入:把文字变成向量
- 【Webman+MySQL教程一】安装 Webman,跑通第一个 Hello World
- ThinkPHP8后端访问uniCloud云函数URL化,用密钥签名认证访问策略分析
- OpenClaw 进阶:浏览器自动化、多模型接入与 Dashboard
- 温度、Top-p 等采样参数详解:控制大模型的「脑洞」
- RAG 检索增强生成入门:让大模型「开卷考试」
- uniapp+thinkphp6开发答题系统 API接口开发签名验证、接口安全验证方法
- PHP微信公众答题系统、手机端网络答题系统
- 新闻网站源码 网站群系统+精美wap手机端(包含数据)淘宝在售源码

