久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區(qū)

標題: 跨越N多個版本升級到X3.5后,咋都無法登錄admin的問題! [打印本頁]

作者: 寬凨    時間: 2024-10-7 06:32
標題: 跨越N多個版本升級到X3.5后,咋都無法登錄admin的問題!
如題,過去的三四天里找遍了論壇內(nèi),確有發(fā)現(xiàn)跟我有同樣遭遇的站長…… 但卻沒有解決辦法!

苦熬N多個小時,總算自己解決了,在此分享給碰巧跟我同樣問題卻依然未解決的站長。

我遭遇這情況的問題根源是Discuz! X3.? 后新增了“bcrypt”密碼加密算法…… 雖然論壇用戶數(shù)據(jù)表中存儲的依然是md5方式加密的密碼,但與之互通的uc_server的用戶數(shù)據(jù)表中存儲的卻是“bcrypt”加密的……

以上的原由也是我解決之后發(fā)現(xiàn)的,在一切未知的情況下我用的是最笨的方式“升級”,基本步驟如下:

第1步,用phpmyadmin或同類工具確認好,“無法登錄管理員”的完整數(shù)據(jù)庫還在,這是必須!

第2步,手工的,另外的再安裝一份兒全新x3.5,記住admin的賬號,今后會一直用它了(安裝后在phpmyadmin類工具再確認前后兩個數(shù)據(jù)庫是否都在了,下面以“舊”和“新”說明)!


第3步,在舊數(shù)據(jù)庫中的“_common_member”表上操作,導(dǎo)出,選擇“僅數(shù)據(jù)”(不要結(jié)構(gòu)),其它選項按需選擇即可,拿到這個.sql文件后用vscode類文本編輯打開,刪除admin那條后保存;

第4步,切換到新數(shù)據(jù)庫,選擇導(dǎo)入操作,就是第3步時剛?cè)サ鬭dmin那條的那個 .sql 文件…… 然后等待完成!
第3和4兩步驟在具體操作時可能碰到各種各樣的問題,例如碰到某字段在新數(shù)據(jù)庫中是不存在的…… 這種就是“被棄用”的,此時就得先在舊數(shù)據(jù)庫中將“相應(yīng)字段在結(jié)構(gòu)管理員干掉先,然后再重來第3、4兩步,直至完成之。(我在操作時就碰到個“videophotostatus”字段在新數(shù)據(jù)庫中不存在)

第5步,針對需要的數(shù)據(jù)表,每個站長的情況均有區(qū)別,按需重復(fù)以上兩步驟即可,具體我留意到的數(shù)據(jù)表附在最后供大伙參考!


第6步,別以為完成了,千萬別在此時開放用戶訪問!還有坑——因為咱們是手工搬的數(shù)據(jù),所以有的數(shù)據(jù)表存在“自增id序列”的坑……(別問我咋知道的??)
還是用phpmyadmin或sql語句看看最大的一個用戶id是多少,然后我們需要手工改兩個用戶表( _common_member 和 _ucenter_members )的自增,在phpmyadmin中操作是先選中表,然后點上面菜單的“操作”,找到“AUTO_INCREMENT”設(shè)置比當前最大用戶id多1個的數(shù)字即可
(這步驟我是用SQL語句完成的,也寫這兒供參考:
ALTER TABLE pre_common_member AUTO_INCREMENT = 10001;
ALTER TABLE pre_ucenter_members AUTO_INCREMENT = 10001;

上面的表名要改成你的新數(shù)據(jù)一致的表名,10001就是要設(shè)的值,這里假設(shè)了老用戶最大id是10000)


第7步,我未解,也不知道能否有解的問題…… 這樣admin是肯定登錄正常了,那其他老用戶呢?沒錯,無法直接登錄,只能公告大家點“忘記密碼”或管理員手臺給手工操作去修改密碼方可登錄。有沒有辦法能把這個問題解決呢?眼下未知!

至于其它那些清緩存,重新統(tǒng)計啥數(shù)字的…… 那些不用我說了!

在第5步時承諾了要附上的我留意到的相關(guān)表和說明:

用戶相關(guān)
_common_member:用戶基本信息(就是我們跳過admin那個表 UID 1)。
_ucenter_members: 同步的用戶數(shù)據(jù)表(這就是我提到了它啟用了新加密算法保存密碼的表,操作時同樣要先刪除admin對應(yīng)的 UID 所在行后再向新數(shù)據(jù)庫導(dǎo)入)
_common_member_profile:用戶個人資料信息。
_common_member_count:用戶計數(shù)信息,如發(fā)帖數(shù)、積分等,我沒弄。
_common_member_status:用戶狀態(tài)信息,如最后登錄、在線狀態(tài),我沒弄。
_common_member_field_forum:用戶論壇相關(guān)擴展字段。
_common_member_field_home:用戶家園相關(guān)擴展字段,我沒弄。
_common_member_validate:用戶實名認證信息,我沒弄。

論壇和帖子相關(guān)
_forum_forum:論壇版塊信息。
_forum_thread:主題帖信息。
_forum_post:回帖信息。
_forum_post_tableid:帖子表 ID 信息(不同表管理不同的帖子存儲)。
_forum_attachment:附件信息(如果有附件)。
_forum_attachment_n:附件存儲表(n 為附件分表編號)。

權(quán)限和管理相關(guān)
_common_usergroup:用戶組信息(包括權(quán)限設(shè)置)。
_forum_moderator:版主和管理員設(shè)置,我沒弄。

積分和交易相關(guān)(我沒弄)
_common_credit_log:積分日志,如果需要保留用戶的積分變更記錄。
_common_magiclog:道具相關(guān)日志。
_common_medallog:勛章相關(guān)日志。

其它可能需要的(我沒弄):
_common_task:任務(wù)信息(如果使用任務(wù)系統(tǒng))。
_home_doing:記錄用戶動態(tài)。
_home_blog:用戶博客(如啟用了家園模塊)。


故意沒隱藏任何的,但感覺好累…… 好久沒寫這么長的帖子了!覺得我辛苦的,評論區(qū)給贊贊吧!

作者: 寬凨    時間: 2024-10-7 06:49
至于簡單一步的“反向操作”,即直接把對應(yīng)兩個用戶表中的admin的密碼字段從新數(shù)據(jù)庫copy到舊數(shù)據(jù)庫中…… 我估計也能行!

我在操作時,并不明確這個原由…… 同時也擔(dān)心其它數(shù)據(jù)表或啥session或cookies啥的干擾…… 所以才用了這樣的笨方法!

建議大伙多嘗試,不非要向我這樣笨!
作者: Discuz有償服務(wù)    時間: 2024-10-8 19:47
按標準升級步驟升級不會導(dǎo)致密碼錯誤無法登錄,出現(xiàn)無法登錄都是沒按要求操作,導(dǎo)致數(shù)據(jù)庫表結(jié)構(gòu)還沒升級時,密碼就被更新覆蓋
作者: 寬凨    時間: 2024-10-8 22:59
Discuz有償服務(wù) 發(fā)表于 2024-10-8 19:47
按標準升級步驟升級不會導(dǎo)致密碼錯誤無法登錄,出現(xiàn)無法登錄都是沒按要求操作,導(dǎo)致數(shù)據(jù)庫表結(jié)構(gòu)還沒升級時 ...

您是站著說話不腰疼!~
有沒有親自操作過從7.0升到X3.5?若想較真兒,建議您“按標準升級步驟”試試先!
作者: 寬凨    時間: 2024-10-8 23:00
【寫在最后】

在完成以上操作后即會晃然大悟,為何不“反向操作”呢?

我估計,也能行!(有人大膽嘗試后記得分享給我結(jié)果哦??)

在全程折騰后,我越來越清晰——其實遭遇這情況的問題根源是Discuz! X3.2 之后新增了“bcrypt”密碼加密算法…… 雖然論壇用戶數(shù)據(jù)表中存儲的依然是md5方式加密的密碼,但與之互通的uc_server的用戶數(shù)據(jù)表中存儲的卻是“bcrypt”加密的。
作者: Discuz有償服務(wù)    時間: 2024-10-9 02:06
寬凨 發(fā)表于 2024-10-8 22:59
您是站著說話不腰疼!~
有沒有親自操作過從7.0升到X3.5?若想較真兒,建議您“按標準升級步驟”試試先! ...

6.0->X3.5都升級一大把了,論壇用戶表的密碼是假的,那個不用于驗證登錄。X3.5密碼存儲方式變更為password_?hash,但同時也是向下兼容md5的密碼的驗證




歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) Powered by Discuz! W1.0