工作缺陷记录

数据库字符格式问题

  1. 场景:选择规则列表时,查询出错,语句中含有UNION ALL

  2. 查询出错关键字:java.sql.SQLException: Ilegal mix of collations for operation’UNION’

  3. 排查过程

    1. 自行搜索关键字;大部分说是数据库字符格式问题

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      -- 使用语句查询数据库所在字符格式

      show variables like 'character_set_%';
      -- 查出结果:
      +--------------------------+----------------------------+
      | Variable_name | Value |
      +--------------------------+----------------------------+
      | character_set_client | utf8mb4 |
      | character_set_connection | utf8mb4 |
      | character_set_database | utf8mb4 |
      | character_set_filesystem | binary |
      | character_set_results | utf8mb4 |
      | character_set_server | utf8mb4 |
      | character_set_system | utf8 |
      | character_sets_dir | /usr/share/mysql/charsets/ |
      +--------------------------+----------------------------+

      show variables like 'collation_%';

      +----------------------+--------------------+
      | Variable_name | Value |
      +----------------------+--------------------+
      | collation_connection | utf8mb4_general_ci |
      | collation_database | utf8mb4_unicode_ci |
      | collation_server | utf8mb4_unicode_ci |
      +----------------------+--------------------+


    2. 按照网上替换格式依然不行;

    3. 最后发现在数据库创建语句的时候,语句当中都有关键字 COLLATE utf8mb4_unicode_ci(去除即可)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      -- 查看表DDL
      show create table sys_user;
      -- 结果
      | sys_user | CREATE TABLE `sys_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
      `username` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '登录账号',
      `realname` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实姓名',
      `password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',

前端tab保存问题

  1. 场景:一个页面内有3个tab切换页,每个页面都有新增,A 标签页点击新增,取消;切换到B 标签页新增,数据最终到A标签页
  2. 原因:

前端token存储问题

  1. 场景:A账号进入系统内,选择任意子系统进入然后返回首页,退出系统重新用B或A账号登录,再次进入子系统,直接退出登录
  2. 原因:退出子系统回到首页时,清除了子系统相关信息及token,导致后来进系统时拿不到原有信息,以致于退出登录
  3. 正常保留信息,再进入其他系统时,在storage里面新增信息

菜单权限和角色id权限

  1. 场景:子系统开始菜单都正常,在内部演示时候,进入系统设置突然404
  2. 排查:有测试同学从测试环境拷数据到预发布环境导致的,
  3. 恢复:将开发环境关于菜单权限的数据拷贝到预发布,菜单恢复了几个,但总体还是不对,后来再次排查,还有一张关于角色菜单的权限表没有拷贝过来,拷贝之后恢复了

子业务系统授权角色菜单,账号登录显示没查到角色信息

  1. 场景:在子业务系统内授权给角色菜单,授权完毕登录对应账号查看菜单,报错误意思查不到角色相关信息
  2. 排查:
    1. 查询子库关于角色的表是存在的
    2. 新建角色和账号,在子业务系统内授权管理界面发现找不到此角色
    3. 结合之前改动的地方是子库查询公共信息(放到主库)时是通过视图查询的
  3. 恢复:由于之前子系统存在公共信息表,故此删除视图中存在的表,然后建立相关视图以此来从主库中查询