必须先正确配置config/db.php中的数据库连接参数(含dsn、username、password、charset),再在项目根目录执行./yii migrate(Linux/macOS)或yii.bat migrate(Windows)创建user等基础表,顺序不可颠倒,否则会导致注册登录失败、后台打不开等问题。

安装 Yii2 基础版后,数据库迁移不是“配完就能跑”的一步,而是必须严格按顺序执行的初始化动作:先确保 数据库连接配置正确且生效,再在项目根目录执行 yii migrate 创建基础表(如 user、migration 等),缺一不可,顺序颠倒或配置错位都会导致注册登录失败、后台打不开等典型问题。
一、确认数据库已存在并记好连接参数
Yii2 不会自动创建数据库,需手动新建(如 yii2basic),字符集推荐 utf8mb4_unicode_ci(兼容 emoji 和四字节 UTF-8)。同时确认:
- 数据库主机地址(本地开发一般为
localhost或127.0.0.1) - 用户名与密码(开发阶段可用
root,但密码不能为空或必须已知) - 端口是否开放(MySQL 默认 3306)
命令行建库示例:CREATE DATABASE yii2basic CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
二、只修改 config/db.php 配置文件
基础版的数据库配置统一写在 config/db.php 中,这是唯一需要编辑的文件。打开后修改 return 数组中的连接项:
-
'dsn' => 'mysql:host=localhost;dbname=yii2basic'—— 主机和库名要与上一步一致 -
'username' => 'root'和'password' => ''—— 填入实际凭据 -
'charset' => 'utf8mb4'—— 必须与建库时字符集完全匹配,否则中文存取乱码
注意:不要动 config/main.php 或其他配置文件里的 db 设置,它们依赖 config/db.php 的返回值。
三、在项目根目录执行迁移命令
迁移命令必须在含 yii(Linux/macOS)或 yii.bat(Windows)的项目根目录下运行,不是 frontend 或 console 子目录。
- Linux/macOS:
./yii migrate - Windows:
yii.bat migrate
首次执行会提示 “Create new migration?”,输入 yes 回车即可。成功后看到:Migrated up successfully.
且数据库中出现 user、migration 等表,说明迁移完成。
四、常见问题快速定位
如果报错,优先检查以下三项:
-
InvalidConfigException: The migration history is corrupted—— 手动改过已执行的迁移文件,需清空migration表并重试 - 登录页空白或 500 错误 ——
config/db.php中的dsn库名拼错,或数据库根本没创建 - 执行 migrate 无反应或提示 command not found —— 当前路径不是项目根目录,或未赋予
yii可执行权限(Linux/macOS)
不复杂但容易忽略


















