环境:
System:
OS: Linux 5.15 Armbian 23.08.0-trunk jammy 22.04 (Jammy Jellyfish)
CPU: (4) arm64 ARMv8 Processor rev 4 (v8l)
Binaries:
Node: 18.17.1
Yarn: 1.22.19
Koishi:
Core: 4.14.1
Console: 5.13.1
MySQL版本:
armbian:data:# mysql --version
mysql Ver 8.0.33-0ubuntu0.22.04.4 for Linux on aarch64 ((Ubuntu))
koishi.yml部分
group:storage:
~database-sqlite: {}
database-mysql:
host: 127.0.0.1
user: koishiu
password: ***
database: koishid
我将sqlite3(koishi.db) .dump后,将INTEGER
替换为BIGINT
(估计没必要,原本是时间戳超了int上限),将如channel中设为主键TEXT
列类型转换为VARCHAR(100)
(部分修改),部分表设为主键的BIGINT NULL
或DEFAULT NULL
改NOT NULL
,将stats_*表中time手动转换为date/datetime,去掉不兼容指令,然后source导入
禁用sqlite插件,启用mysql插件并配置好
但当我运行koishi并群发status
命令时,后台报错 添加重复的 (qq号)-onebot 主键对(?):
2023-08-15 13:11:05 [I] gocqhttp-dev 收到群 ****(***) 内 ********(******) 的消息: status (******)
2023-08-15 13:11:05 [W] mysql INSERT INTO `binding` (`aid`, `bid`, `pid`, `platform`) VALUES (35, 35, '******', 'onebot')
2023-08-15 13:11:05 [W] session status
ER_DUP_ENTRY: Duplicate entry '******-onebot' for key 'binding.PRIMARY'
at _MySQLDriver.query (/root/koishi/koishi-308/node_modules/@minatojs/driver-mysql/lib/index.js:311:19)
at _MySQLDriver.create (/root/koishi/koishi-308/node_modules/@minatojs/driver-mysql/lib/index.js:444:31)
......
我的onebot qq已绑定在 binding aid = 0, bid = 1这行(auth插件管理员账户绑定(?)),对应 user id=1这行
请问,表binding
的主键是否应为 PRIMARY KEY ( pid, platform )
(过滤点符号)(sqlite3导出,以及直接编辑.db查找binding)?
(应该是)
又发现,每次发送信息时都会在user创建一个 pid等都为NULL,id自增的用户,对应新增binding的aid
私发也貌似一样
请问是否为我的配置问题?或者mysql适配不好,无法查表?