申明
本文所有内容参考自
简介
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 数据库连接参数
- 修改字符集
use jumpserver;SET character_set_client = utf8mb4;SET character_set_results = utf8mb4;SET character_set_connection = utf8mb4;
- 修改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'}, }}