【发布时间】:2018-09-13 02:56:05
【问题描述】:
我有一个(旧的)ejabberd 实例,它仍然使用“内部”作为身份验证方法。我安装了一个闪亮的新服务器(包括 MySQL),并计划尽快迁移到它。从那时起,我想避免使用 Mnesia 作为身份验证数据库。
由于我的用户密码仍然存储在 Mnesia 数据库中,我需要将它们导入到新服务器上的(新)MySQL 数据库中。我成功地转储了“passwd”表,它充满了这样的条目:
{passwd,{>,>},
{急停,>,
<<"4Qiv9ygiMLlzeZXUG6Bpyhygtgr=">>, <<"dylctQFXYGXemMii1Pswe==">>,4096}}
为了能够正确地将这些条目导入 MySQL 数据库,我需要确定哪个字段对应于 MySQL 'users' 表中的哪个字段:
+----------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+-------------------+-------+
| username | varchar(191) | NO | PRI | NULL | |
| password | text | NO | | NULL | |
| serverkey | varchar(64) | NO | | | |
| salt | varchar(64) | NO | | | |
| iterationcount | int(11) | NO | | 0 | |
| created_at | timestamp | NO | | CURRENT_TIMESTAMP | |
+----------------+--------------+------+-----+-------------------+-------+
6 rows in set (0.00 sec)
我显然知道“用户名”字段是什么(我想我可以猜到“迭代计数”是什么),但我想确保以正确的顺序获取其他字段。
一句话:'password'、'serverkey'和'salt'字段存储在 ejabberd Mnesia DB 中的顺序是什么?我在哪里可以找到有关此的信息?也许在代码中?
请注意你们中间有抱负的黑客:我确实更改了值,使用随机字符生成器;)
【问题讨论】: