工作缺陷记录
数据库字符格式问题
场景:选择规则列表时,查询出错,语句中含有UNION ALL
查询出错关键字:java.sql.SQLException: Ilegal mix of collations for operation’UNION’
排查过程
自行搜索关键字;大部分说是数据库字符格式问题
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 |
+----------------------+--------------------+按照网上替换格式依然不行;
最后发现在数据库创建语句的时候,语句当中都有关键字 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保存问题
- 场景:一个页面内有3个tab切换页,每个页面都有新增,A 标签页点击新增,取消;切换到B 标签页新增,数据最终到A标签页
- 原因:
前端token存储问题
- 场景:A账号进入系统内,选择任意子系统进入然后返回首页,退出系统重新用B或A账号登录,再次进入子系统,直接退出登录
- 原因:退出子系统回到首页时,清除了子系统相关信息及token,导致后来进系统时拿不到原有信息,以致于退出登录
- 正常保留信息,再进入其他系统时,在storage里面新增信息
菜单权限和角色id权限
- 场景:子系统开始菜单都正常,在内部演示时候,进入系统设置突然404
- 排查:有测试同学从测试环境拷数据到预发布环境导致的,
- 恢复:将开发环境关于菜单权限的数据拷贝到预发布,菜单恢复了几个,但总体还是不对,后来再次排查,还有一张关于角色菜单的权限表没有拷贝过来,拷贝之后恢复了
子业务系统授权角色菜单,账号登录显示没查到角色信息
- 场景:在子业务系统内授权给角色菜单,授权完毕登录对应账号查看菜单,报错误意思查不到角色相关信息
- 排查:
- 查询子库关于角色的表是存在的
- 新建角色和账号,在子业务系统内授权管理界面发现找不到此角色
- 结合之前改动的地方是子库查询公共信息(放到主库)时是通过视图查询的
- 恢复:由于之前子系统存在公共信息表,故此删除视图中存在的表,然后建立相关视图以此来从主库中查询