Iris 框架本身完全不依赖数据库,仅需 Go 环境和 go get github.com/kataras/iris/v12 即可运行 Hello World;数据库连接纯属业务需求,需手动引入驱动并配置 sql.DB 实例。

不需要。Iris 框架本身完全不依赖数据库——它只是一个 HTTP 路由与中间件引擎,安装时只依赖 Go 语言环境和少量纯 Go 的第三方包(如 github.com/kataras/iris/v12),跟 MySQL、PostgreSQL、SQLite 等任何数据库无关。
安装 Iris 只需 Go 环境和 go get
基础安装只要两步:
- 确认 Go 版本 ≥ 1.15(执行
go version查看) - 运行
go get -u github.com/kataras/iris/v12
此时 go.mod 会自动添加 github.com/kataras/iris/v12 v12.2.5(当前稳定版)。你立刻就能跑起一个 Hello World 服务,全程无需任何数据库配置或驱动。
什么时候才需要配数据库?取决于你的业务逻辑
数据库是业务层决定的,不是 Iris 框架的要求。只有当你主动写代码去查数据时,才需引入对应驱动:
- 连 MySQL:加
go get github.com/go-sql-driver/mysql,再用sql.Open("mysql", dsn) - 连 PostgreSQL:加
go get github.com/lib/pq,再用sql.Open("postgres", dsn) - 连 SQLite:加
go get github.com/mattn/go-sqlite3,注意 CGO_ENABLED=1
这些驱动不会被 Iris 自动加载或感知;sql.DB 实例通常由你手动创建、注入到 handler 或控制器中,Iris 不参与连接池管理。
容易踩的坑:把示例当框架要求
很多教程一上来就教 “Iris + MySQL”,导致新手误以为数据库是必选项。实际常见错误包括:
- 在
go.mod里硬塞github.com/go-sql-driver/mysql,但代码里根本没调用sql.Open——白装,还增加构建体积 - 误以为
iris.New()会读取某个 config.yaml 自动连库——它不会,所有配置都得你手写 - 部署时发现
template not found,以为是数据库没连上——其实是静态文件路径写成相对路径,跟数据库毫无关系
真正要盯住的,是你的 handler 里有没有显式调用数据库操作。Iris 本身对 DB 是彻底“无感”的。
最常被忽略的一点:即使你用了数据库,也别把 sql.DB 当全局变量裸奔。它需要设置 SetMaxOpenConns、SetMaxIdleConns 和 SetConnMaxLifetime,否则高并发下容易耗尽连接或复用过期连接——这些都得你亲手配,Iris 不代劳。











