如何通过SQL迁移AuthMe至limboAuth?SQLite跨库操作求助
问题描述
- 运行Minecraft服务器,想把AuthMe插件的玩家数据从
authme.db迁移到limboAuth - 照着limboAuth官方给的SQL脚本执行时,报错
[SQLITE_ERROR] SQL error or missing database (no such table: limbo.AUTH) - 已经手动建了
limbo.db,但搞不定空的limbo.AUTH表,怀疑理解错了操作步骤 - 想知道怎么在DBeaver里同时操作两个数据库,不确定
ATTACH语句能不能用
解决方案
一、解决limbo.AUTH表不存在的问题
让limboAuth自动生成表结构
别手动创建limbo.db,直接启动装了limboAuth插件的MC服务器,插件会自动生成limbo.db和对应的AUTH表——插件的表有特定字段类型和约束,手动建很容易出错。等服务器启动完成、插件加载好,再关掉服务器,此时limbo.db里就有完整的AUTH表了。修正迁移SQL脚本
原脚本里的authme.table是错的,AuthMe的玩家表默认叫authme,把脚本里的authme.table改成authme.authme(或者直接authme)就行。修正后的脚本如下:INSERT INTO limbo.AUTH SELECT realname, username, COALESCE(password, ""), COALESCE(ip, ""), COALESCE(totp, ""), regdate, "", "", NULL, NULL, NULL FROM authme.authme WHERE username IS NOT NULL要是不确定AuthMe的表名,先在DBeaver里打开
authme.db确认一下。
二、DBeaver中同时操作两个数据库的方法
方法1:用ATTACH语句(推荐用于迁移)
- 先在DBeaver里连接
authme.db - 在SQL编辑器里执行下面的语句,把
limbo.db附加进来(替换成你实际的文件路径):ATTACH DATABASE '/实际路径/limbo.db' AS limbo; - 附加成功后,就能在同一个SQL会话里同时操作两个数据库的表了,直接跑修正后的迁移脚本就行。
方法2:建立两个独立连接
- 打开DBeaver,点左上角「新建连接」,选SQLite,指向
authme.db完成连接 - 再新建一个SQLite连接,指向
limbo.db - 左侧导航栏会显示两个连接,你可以分别打开表操作,不过跨库迁移还是用
ATTACH更方便。
内容的提问来源于stack exchange,提问作者angushushu
相关产品推荐
相关产品推荐

