jumpserver 报错"Incorrect string value

申明

本文所有内容参考自jumpserver记录命令无法入库问题 #1773

简介

jumpserver 1.4.0在jumpserver.log中大量报错,错误日志

  File "/opt/jumpserver/apps/terminal/api.py", line 246, in create
    ok = self.command_store.bulk_save(serializer.validated_data)
  File "/opt/jumpserver/apps/terminal/backends/command/db.py", line 38, in bulk_save
    return self.model.objects.bulk_create(_commands)
django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xF2\\xB7\\xAF\\x8A.\\xEF...' for column 'output' at row 1")

究其原因,是由于数据库中要插入emoji表情符号。官网上安装教程中建立的是uft-8字符集的数据库,而要支持emoji需要使用utf8mb4,因此报错。

解决

解决方法包括两部:修改数据库字符集,修改jumpserver 数据库连接参数

  1. 修改字符集
use jumpserver;
SET character_set_client = utf8mb4;
SET character_set_results = utf8mb4;
SET character_set_connection = utf8mb4;
  1. 修改jumpserver数据库连接参数

edit apps/jumpserver/settings.py 修改DATABASES项目

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.{}'.format(CONFIG.DB_ENGINE),
        'NAME': CONFIG.DB_NAME,
        'HOST': CONFIG.DB_HOST,
        'PORT': CONFIG.DB_PORT,
        'USER': CONFIG.DB_USER,
        'PASSWORD': CONFIG.DB_PASSWORD,
        'ATOMIC_REQUESTS': True,
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值