必须为Codex单独创建隔离的测试数据库实例,包括建库(指定utf8mb4字符集防中文乱码)、分配最小权限账号、配置项目级.env.local连接文件,并通过codex --env local验证连接。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Codex在不污染生产或开发数据库的前提下运行测试,就必须为它单独准备一个隔离的测试数据库实例。这个库不能复用现有环境的连接配置,也不能共享用户权限,否则一次误操作就可能清空真实数据。
创建专用测试数据库实例
打开终端,以管理员身份连接本地 MySQL(或 PostgreSQL)服务:
mysql -u root -p
输入密码后,执行建库命令:
CREATE DATABASE codex_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
这一步必须显式指定字符集和排序规则,【否则 Codex 生成的中文字段注释会乱码,后续无法通过 MyBatis-Plus 的自动建表逻辑】。不要依赖默认配置,MySQL 8.0 之后默认字符集虽已改,但某些 Docker 镜像或旧版部署仍沿用 latin1。
分配最小权限测试账号
执行以下语句创建仅限测试库操作的账号:
CREATE USER 'codex_tester'@'localhost' IDENTIFIED BY 'StrongPass_2026!';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON codex_test.* TO 'codex_tester'@'localhost';
FLUSH PRIVILEGES;
注意:不要给 SUPER、FILE 或 GRANT OPTION 权限。Codex 在生成迁移脚本或执行 DDL 时若拥有过高权限,可能意外修改系统表或写入临时文件——这是真实踩过的坑,曾导致本地 MySQL 服务异常退出。
配置项目级数据库连接
在你的 Java 项目根目录下,新建 .env.local 文件(确保该文件已加入 .gitignore):
DATABASE_URL=jdbc:mysql://localhost:3306/codex_test?useSSL=false&serverTimezone=Asia/Shanghai
DATABASE_USERNAME=codex_tester
DATABASE_PASSWORD=StrongPass_2026!
这一步的关键是路径和命名:Codex CLI 默认只读取项目根目录下的 .env.local,不是 .env,也不是 application.yml。如果放错位置,它会静默 fallback 到开发库配置,而你完全不会收到警告。
验证连接是否生效
第一步:进入项目根目录
cd /path/to/your/springboot-project
第二步:启动 Codex CLI 并指定环境
codex --env local
第三步:在对话中输入指令
“连接测试数据库并列出 codex_test 库中的所有表”
如果返回空列表,说明连接成功但无表——这是预期状态;如果报错 “Access denied” 或 “Unknown database”,请立即检查 .env.local 中的用户名、密码、端口是否与实际 MySQL 实例一致。不要跳过这一步直接开始写代码,很多后续失败都源于此处连接未真正打通。


















