-
Notifications
You must be signed in to change notification settings - Fork 24
Closed
Labels
bugSomething isn't workingSomething isn't workinghelp wantedExtra attention is neededExtra attention is needed
Description
Plugin Version
Next-2.0.5
AstrBot Version
v4.13.1
Database Type
MySQL
Operating System
Docker
Bug Description
MySQL 数据库链接失败
IP 和 端口号 都正确无误
Steps to Reproduce
- 安装插件
- 配置数据库
- 保存
Expected Behavior
确保 MySQL 数据库存在失败: unpack requires a buffer of 4 bytes
Error Logs
Astrbot日志
"""
[11:12:12] [Plug] [INFO] [core.plugin_lifecycle:323]: 尝试启动数据库管理器 (第 1/3 次)
[11:12:12] [Plug] [INFO] [database.sqlalchemy_database_manager:66]: [DomainRouter] 开始启动…
[11:12:12] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:182]: [DomainRouter] 确保 MySQL 数据库存在失败: unpack requires a buffer of 4 bytes
[11:12:12] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: unpack requires a buffer of 4 bytes
Traceback (most recent call last):
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 71, in start
await self._ensure_mysql_database_exists()
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 162, in _ensure_mysql_database_exists
conn = await aiomysql.connect(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 74, in _connect
await conn._connect()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 539, in _connect
await self._get_server_information()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 1058, in _get_server_information
self.server_thread_id = struct.unpack('<I', data[i:i + 4])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
struct.error: unpack requires a buffer of 4 bytes
[11:12:12] [Plug] [WARN] [v4.13.1] [core.plugin_lifecycle:329]: 数据库管理器启动返回 False (尝试 1/3)
[11:12:13] [Plug] [INFO] [database.sqlalchemy_database_manager:66]: [DomainRouter] 开始启动…
[11:12:13] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:182]: [DomainRouter] 确保 MySQL 数据库存在失败: unpack requires a buffer of 4 bytes
[11:12:13] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: unpack requires a buffer of 4 bytes
Traceback (most recent call last):
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 71, in start
await self._ensure_mysql_database_exists()
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 162, in _ensure_mysql_database_exists
conn = await aiomysql.connect(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 74, in _connect
await conn._connect()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 539, in _connect
await self._get_server_information()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 1058, in _get_server_information
self.server_thread_id = struct.unpack('<I', data[i:i + 4])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
struct.error: unpack requires a buffer of 4 bytes
[11:12:13] [Plug] [ERRO] [v4.13.1] [webui.manager:105]: 启动数据库管理器失败: 数据库管理器启动失败
Traceback (most recent call last):
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/webui/manager.py", line 103, in immediate_start
raise RuntimeError("数据库管理器启动失败")
RuntimeError: 数据库管理器启动失败
[11:12:14] [Plug] [INFO] [core.plugin_lifecycle:323]: 尝试启动数据库管理器 (第 2/3 次)
[11:12:14] [Plug] [INFO] [database.sqlalchemy_database_manager:66]: [DomainRouter] 开始启动…
[11:12:14] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:182]: [DomainRouter] 确保 MySQL 数据库存在失败: unpack requires a buffer of 4 bytes
[11:12:14] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: unpack requires a buffer of 4 bytes
Traceback (most recent call last):
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 71, in start
await self._ensure_mysql_database_exists()
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 162, in _ensure_mysql_database_exists
conn = await aiomysql.connect(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 74, in _connect
await conn._connect()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 539, in _connect
await self._get_server_information()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 1058, in _get_server_information
self.server_thread_id = struct.unpack('<I', data[i:i + 4])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
struct.error: unpack requires a buffer of 4 bytes
[11:12:14] [Plug] [WARN] [v4.13.1] [core.plugin_lifecycle:329]: 数据库管理器启动返回 False (尝试 2/3)
[11:12:16] [Plug] [INFO] [core.plugin_lifecycle:323]: 尝试启动数据库管理器 (第 3/3 次)
[11:12:16] [Plug] [INFO] [database.sqlalchemy_database_manager:66]: [DomainRouter] 开始启动…
[11:12:16] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:182]: [DomainRouter] 确保 MySQL 数据库存在失败: unpack requires a buffer of 4 bytes
[11:12:16] [Plug] [ERRO] [v4.13.1] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: unpack requires a buffer of 4 bytes
Traceback (most recent call last):
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 71, in start
await self._ensure_mysql_database_exists()
File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 162, in _ensure_mysql_database_exists
conn = await aiomysql.connect(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 74, in _connect
await conn._connect()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 539, in _connect
await self._get_server_information()
File "/usr/local/lib/python3.11/site-packages/aiomysql/connection.py", line 1058, in _get_server_information
self.server_thread_id = struct.unpack('<I', data[i:i + 4])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
struct.error: unpack requires a buffer of 4 bytes
[11:12:16] [Plug] [WARN] [v4.13.1] [core.plugin_lifecycle:329]: 数据库管理器启动返回 False (尝试 3/3)
[11:12:16] [Plug] [ERRO] [v4.13.1] [core.plugin_lifecycle:343]: 数据库管理器启动失败: 所有重试均失败
[11:12:16] [Plug] [WARN] [v4.13.1] [core.plugin_lifecycle:346]: 插件将在数据库功能受限的情况下继续运行
[11:12:16] [Plug] [INFO] [core.patterns:43]: 服务状态变更: created -> initializing
[11:12:16] [Plug] [ERRO] [v4.13.1] [state.affection_manager:518]: 获取活跃群组列表失败: 数据库管理器未启动,engine不存在
[11:12:16] [Plug] [INFO] [state.affection_manager:423]: 没有发现活跃群组,跳过情绪初始化
[11:12:16] [Plug] [INFO] [state.affection_manager:139]: 好感度管理服务启动成功
[11:12:16] [Plug] [INFO] [core.patterns:43]: 服务状态变更: initializing -> running
[11:12:16] [Plug] [INFO] [core.patterns:56]: 服务启动成功
[11:12:16] [Plug] [INFO] [core.plugin_lifecycle:352]: 好感度管理服务启动成功
[11:12:16] [Plug] [INFO] [webui.manager:207]: 成功获取 AstrBot 框架 PersonaManager: <class 'astrbot.core.persona_mgr.PersonaManager'>
[11:12:16] [Plug] [INFO] [webui.dependencies:98]: [WebUI] persona_updater 获取成功: <class 'data.plugins.astrbot_plugin_self_learning.services.persona.persona_updater.PersonaUpdater'>
[11:12:16] [Plug] [INFO] [webui.dependencies:138]: [WebUI] 性能监测模块初始化成功
[11:12:16] [Plug] [INFO] [webui.dependencies:155]: [WebUI] PersonaWebManager 初始化成功
[11:12:16] [Plug] [INFO] [webui.dependencies:163]: [WebUI] 服务容器初始化完成
[11:12:16] [Plug] [INFO] [webui.dependencies:218]: [WebUI] 插件服务设置完成
[11:12:16] [Plug] [INFO] [webui.manager:140]: Web 服务器插件服务设置完成
[11:12:16] [Plug] [INFO] [webui.manager:147]: 准备启动 Web 服务器: http://0.0.0.0:8080
[11:12:16] [Plug] [INFO] [webui.app:49]: [WebUI] Quart 应用创建成功
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: auth
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: config
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: personas
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: learning
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: jargon
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: chat
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: bug_report
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: metrics
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: social
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: persona_reviews
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: intelligent_chat
[11:12:16] [Plug] [INFO] [webui.app:67]: [WebUI] 已注册蓝图: monitoring
[11:12:16] [Plug] [INFO] [webui.app:69]: [WebUI] 共注册 12 个蓝图
[11:12:16] [Plug] [INFO] [webui.server:139]: [WebUI] 启动服务器: http://0.0.0.0:8080
[11:12:17] [Plug] [INFO] [webui.server:152]: [WebUI] Web服务器启动成功
[11:12:17] [Plug] [INFO] [webui.server:153]: [WebUI] 本地访问: http://127.0.0.1:8080
[11:12:17] [Plug] [INFO] [webui.manager:152]: Web 服务器启动完成
[11:12:17] [Plug] [INFO] [core.plugin_lifecycle:401]: 自学习插件加载完成 """
Mysql日志
"""
2026-03-02 11:12:41+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.34-1.el8 started.
2026-03-02 11:12:41+08:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2026-03-02 11:12:41+08:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.34-1.el8 started.
'/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
2026-03-02T03:12:41.966710Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead.
2026-03-02T03:12:41.967964Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.34) starting as process 1
2026-03-02T03:12:41.972642Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2026-03-02T03:12:42.186532Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2026-03-02T03:12:42.429814Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2026-03-02T03:12:42.429874Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2026-03-02T03:12:42.432390Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
2026-03-02T03:12:42.455386Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
2026-03-02T03:12:42.455501Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.34' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
"""Relevant Configuration
我的Astrbot 和 Mysql 分别是两个docker容器Additional Context
刚开始玩BOT, 不懂的还很多, 希望大佬能多指点一下, 谢谢
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workinghelp wantedExtra attention is neededExtra attention is needed