pangu-user-platform/sql/fix_ruoyi_charset.sql

106 lines
5.7 KiB
MySQL
Raw Normal View History

fix: 修复RuoYi系统表中文乱码问题 ## 问题描述 用户反馈:RuoYi原SQL导入后,多个系统表中的中文内容显示为乱码 ## 乱码表统计 ### 受影响的表 1. **sys_role** - 角色表 - role_name: 超级管ç†å'˜ → 超级管理员 ✅ - remark: 普通è§'色 → 普通角色 ✅ 2. **sys_dept** - 部门表 - dept_name: è‹¥ä¾ç§'技 → 若依科技 ✅ - leader: è‹¥ä¾ → 若依 ✅ 3. **sys_user** - 用户表 - nick_name: 乱码 → 管理员/若依 ✅ 4. **sys_post** - 岗位表 - post_name: 乱码 → 董事长/项目经理等 ✅ 5. **sys_dict_type** - 字典类型表 - dict_name: 乱码 → 用户性别/菜单状态等 ✅ 6. **sys_dict_data** - 字典数据表 - dict_label: 乱码 → 男/女/正常/停用等 ✅ 7. **sys_config** - 配置表 - config_name: 乱码 → 主框架页配置等 ✅ ## 问题原因 ### 字符集转换错误 原RuoYi SQL文件在导入时,UTF-8编码的中文被错误地按照Latin1解码,导致: - UTF-8字节序列被拆分成多个Latin1字符 - 显示为类似"超级管ç†å'˜"的乱码 ### 受影响数据范围 - ❌ 系统管理相关表:角色、部门、用户、岗位 - ❌ 字典管理表:字典类型、字典数据 - ❌ 系统配置表:参数配置 - ✅ 菜单表:正常(已正确导入) ## 解决方案 ### 创建修复SQL文件 **新增**:`sql/fix_ruoyi_charset.sql` **修复内容**: ```sql -- 1. 角色表(2条记录) UPDATE sys_role SET role_name = '超级管理员' WHERE role_id = 1; UPDATE sys_role SET role_name = '普通角色' WHERE role_id = 2; -- 2. 部门表(10条记录) UPDATE sys_dept SET dept_name = '若依科技' WHERE dept_id = 100; UPDATE sys_dept SET dept_name = '深圳总公司' WHERE dept_id = 101; ... -- 3. 用户表(2条记录) UPDATE sys_user SET nick_name = '管理员' WHERE user_id = 1; UPDATE sys_user SET nick_name = '若依' WHERE user_id = 2; -- 4. 岗位表(4条记录) UPDATE sys_post SET post_name = '董事长' WHERE post_id = 1; ... -- 5. 字典类型表(10条记录) UPDATE sys_dict_type SET dict_name = '用户性别' WHERE dict_type = 'sys_user_sex'; ... -- 6. 字典数据表(29条记录) UPDATE sys_dict_data SET dict_label = '男' WHERE dict_code = 1; UPDATE sys_dict_data SET dict_label = '女' WHERE dict_code = 2; ... -- 7. 配置表(6条记录) UPDATE sys_config SET config_name = '主框架页-默认皮肤样式名称' WHERE config_id = 1; ... ``` **使用方法**: ```bash cd sql mysql -h8.148.25.55 -P3306 -uroot -p --default-character-set=utf8mb4 pguser-db < fix_ruoyi_charset.sql ``` ## 修复结果 ### 执行统计 - ✅ 角色表:2条记录修复 - ✅ 部门表:10条记录修复 - ✅ 用户表:2条记录修复 - ✅ 岗位表:4条记录修复 - ✅ 字典类型表:10条记录修复 - ✅ 字典数据表:29条记录修复 - ✅ 配置表:6条记录修复 - **合计**:63条记录修复 ✅ ### 验证方法 ```sql -- 角色表验证 SELECT role_id, role_name FROM sys_role; -- 预期:超级管理员、普通角色 -- 部门表验证 SELECT dept_id, dept_name FROM sys_dept; -- 预期:若依科技、深圳总公司、研发部门等 -- 字典表验证 SELECT dict_name FROM sys_dict_type; -- 预期:用户性别、菜单状态、系统开关等 ``` ## 预防措施 ### 1. 导入SQL时指定字符集 ```bash mysql --default-character-set=utf8mb4 -h... < file.sql ``` ### 2. 检查SQL文件编码 ```bash file -I file.sql # 确保输出:charset=utf-8 ``` ### 3. 使用修复后的完整SQL 今后建议使用: - `sql/sys_menu_complete.sql` - 完整菜单数据(已修复字符集) - `sql/fix_ruoyi_charset.sql` - RuoYi系统表乱码修复 ## 相关文件 - sql/fix_ruoyi_charset.sql - RuoYi乱码修复SQL(新增) - sql/fix_charset.sh - 字符集检查修复工具 - sql/import_menu.sh - 菜单导入脚本(已修复字符集) --- 作者:湖北新华业务中台研发团队
2026-02-01 13:25:14 +08:00
-- ============================================================
-- RuoYi系统表中文乱码修复SQL
-- 作者:湖北新华业务中台研发团队
-- 创建时间2026-01-31
-- 说明修复sys_role、sys_dept等表中的中文乱码
-- 使用方法mysql -h8.148.25.55 -P3306 -uroot -p --default-character-set=utf8mb4 pguser-db < fix_ruoyi_charset.sql
-- ============================================================
-- 1. 修复角色表sys_role
UPDATE sys_role SET role_name = '超级管理员', remark = '超级管理员' WHERE role_id = 1;
UPDATE sys_role SET role_name = '普通角色', remark = '普通角色' WHERE role_id = 2;
-- 2. 修复部门表sys_dept
UPDATE sys_dept SET dept_name = '若依科技', leader = '若依' WHERE dept_id = 100;
UPDATE sys_dept SET dept_name = '深圳总公司', leader = '若依' WHERE dept_id = 101;
UPDATE sys_dept SET dept_name = '长沙分公司', leader = '若依' WHERE dept_id = 102;
UPDATE sys_dept SET dept_name = '研发部门', leader = '若依' WHERE dept_id = 103;
UPDATE sys_dept SET dept_name = '市场部门', leader = '若依' WHERE dept_id = 104;
UPDATE sys_dept SET dept_name = '测试部门', leader = '若依' WHERE dept_id = 105;
UPDATE sys_dept SET dept_name = '财务部门', leader = '若依' WHERE dept_id = 106;
UPDATE sys_dept SET dept_name = '运维部门', leader = '若依' WHERE dept_id = 107;
UPDATE sys_dept SET dept_name = '市场部门', leader = '若依' WHERE dept_id = 108;
UPDATE sys_dept SET dept_name = '财务部门', leader = '若依' WHERE dept_id = 109;
-- 3. 修复用户表sys_user
UPDATE sys_user SET nick_name = '管理员' WHERE user_id = 1;
UPDATE sys_user SET nick_name = '若依' WHERE user_id = 2;
-- 4. 修复岗位表sys_post
UPDATE sys_post SET post_name = '董事长', remark = '' WHERE post_id = 1;
UPDATE sys_post SET post_name = '项目经理', remark = '' WHERE post_id = 2;
UPDATE sys_post SET post_name = '人力资源', remark = '' WHERE post_id = 3;
UPDATE sys_post SET post_name = '普通员工', remark = '' WHERE post_id = 4;
-- 5. 修复字典类型表sys_dict_type
UPDATE sys_dict_type SET dict_name = '用户性别' WHERE dict_type = 'sys_user_sex';
UPDATE sys_dict_type SET dict_name = '菜单状态' WHERE dict_type = 'sys_show_hide';
UPDATE sys_dict_type SET dict_name = '系统开关' WHERE dict_type = 'sys_normal_disable';
UPDATE sys_dict_type SET dict_name = '任务状态' WHERE dict_type = 'sys_job_status';
UPDATE sys_dict_type SET dict_name = '任务分组' WHERE dict_type = 'sys_job_group';
UPDATE sys_dict_type SET dict_name = '系统是否' WHERE dict_type = 'sys_yes_no';
UPDATE sys_dict_type SET dict_name = '通知类型' WHERE dict_type = 'sys_notice_type';
UPDATE sys_dict_type SET dict_name = '通知状态' WHERE dict_type = 'sys_notice_status';
UPDATE sys_dict_type SET dict_name = '操作类型' WHERE dict_type = 'sys_oper_type';
UPDATE sys_dict_type SET dict_name = '系统状态' WHERE dict_type = 'sys_common_status';
-- 6. 修复字典数据表sys_dict_data
-- 用户性别
UPDATE sys_dict_data SET dict_label = '' WHERE dict_code = 1;
UPDATE sys_dict_data SET dict_label = '' WHERE dict_code = 2;
UPDATE sys_dict_data SET dict_label = '未知' WHERE dict_code = 3;
-- 菜单状态
UPDATE sys_dict_data SET dict_label = '显示' WHERE dict_code = 4;
UPDATE sys_dict_data SET dict_label = '隐藏' WHERE dict_code = 5;
-- 系统开关
UPDATE sys_dict_data SET dict_label = '正常' WHERE dict_code = 6;
UPDATE sys_dict_data SET dict_label = '停用' WHERE dict_code = 7;
-- 任务状态
UPDATE sys_dict_data SET dict_label = '正常' WHERE dict_code = 8;
UPDATE sys_dict_data SET dict_label = '暂停' WHERE dict_code = 9;
-- 任务分组
UPDATE sys_dict_data SET dict_label = '默认' WHERE dict_code = 10;
UPDATE sys_dict_data SET dict_label = '系统' WHERE dict_code = 11;
-- 系统是否
UPDATE sys_dict_data SET dict_label = '' WHERE dict_code = 12;
UPDATE sys_dict_data SET dict_label = '' WHERE dict_code = 13;
-- 通知类型
UPDATE sys_dict_data SET dict_label = '通知' WHERE dict_code = 14;
UPDATE sys_dict_data SET dict_label = '公告' WHERE dict_code = 15;
-- 通知状态
UPDATE sys_dict_data SET dict_label = '正常' WHERE dict_code = 16;
UPDATE sys_dict_data SET dict_label = '关闭' WHERE dict_code = 17;
-- 操作类型
UPDATE sys_dict_data SET dict_label = '其他' WHERE dict_code = 18;
UPDATE sys_dict_data SET dict_label = '新增' WHERE dict_code = 19;
UPDATE sys_dict_data SET dict_label = '修改' WHERE dict_code = 20;
UPDATE sys_dict_data SET dict_label = '删除' WHERE dict_code = 21;
UPDATE sys_dict_data SET dict_label = '授权' WHERE dict_code = 22;
UPDATE sys_dict_data SET dict_label = '导出' WHERE dict_code = 23;
UPDATE sys_dict_data SET dict_label = '导入' WHERE dict_code = 24;
UPDATE sys_dict_data SET dict_label = '强退' WHERE dict_code = 25;
UPDATE sys_dict_data SET dict_label = '生成代码' WHERE dict_code = 26;
UPDATE sys_dict_data SET dict_label = '清空数据' WHERE dict_code = 27;
-- 系统状态
UPDATE sys_dict_data SET dict_label = '成功' WHERE dict_code = 28;
UPDATE sys_dict_data SET dict_label = '失败' WHERE dict_code = 29;
-- 7. 修复配置表sys_config
UPDATE sys_config SET config_name = '主框架页-默认皮肤样式名称' WHERE config_id = 1;
UPDATE sys_config SET config_name = '用户管理-账号初始密码' WHERE config_id = 2;
UPDATE sys_config SET config_name = '主框架页-侧边栏主题' WHERE config_id = 3;
UPDATE sys_config SET config_name = '账号自助-验证码开关' WHERE config_id = 4;
UPDATE sys_config SET config_name = '账号自助-是否开启用户注册功能' WHERE config_id = 5;
UPDATE sys_config SET config_name = '用户登录-黑名单列表' WHERE config_id = 11;
SELECT '✅ RuoYi系统表中文乱码修复完成' AS status;