2. 修复 SQL 报错
上文的这个错误是因为 SQLite 驱动需要 CGO 支持。让我们改用 MySQL 数据库来避免这个问题。
1. 修改数据库配置文件
首先需要修改数据库配置文件:
go
// :d:\works\RD\todo-list\config\database.go
package config
import (
"todo-list/models"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func InitDB() (*gorm.DB, error) {
dsn := "root:123456@tcp(127.0.0.1:3306)/todo_list?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
return nil, err
}
// 自动迁移数据库结构
err = db.AutoMigrate(&models.Todo{})
if err != nil {
return nil, err
}
return db, nil
}2. 更新依赖
然后需要更新依赖:
bash
cd d:\works\RD\todo-list
go get -u gorm.io/driver/mysql使用前请确保:
- 已安装 MySQL 数据库
- MySQL 服务已启动
- 创建了名为
todo_list的数据库:
sql
CREATE DATABASE todo_list CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;报错(详情见下文)

如果你的 MySQL 配置不同(比如用户名、密码、端口等),请相应修改 DSN 字符串。