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

返回列表 發帖
查看: 985|回復: 5

[已解決] 跨越N多個版本升級到X3.5后,咋都無法登錄admin的問題!

1

主題

9

回帖

16

積分

初學乍練

貢獻
0 點
金幣
5 個
樓主
發表于 2024-10-7 06:32:31 | 只看樓主 |倒序瀏覽 |閱讀模式
如題,過去的三四天里找遍了論壇內,確有發現跟我有同樣遭遇的站長…… 但卻沒有解決辦法!

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

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

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

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

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


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

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

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


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

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


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

至于其它那些清緩存,重新統計啥數字的…… 那些不用我說了!

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

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

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

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

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

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


故意沒隱藏任何的,但感覺好累…… 好久沒寫這么長的帖子了!覺得我辛苦的,評論區給贊贊吧!
我知道答案 回答被采納將會獲得1 貢獻 已有5人回答
回復

使用道具 舉報

1

主題

9

回帖

16

積分

初學乍練

貢獻
0 點
金幣
5 個
沙發
 樓主| 發表于 2024-10-7 06:49:02 | 只看Ta
至于簡單一步的“反向操作”,即直接把對應兩個用戶表中的admin的密碼字段從新數據庫copy到舊數據庫中…… 我估計也能行!

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

建議大伙多嘗試,不非要向我這樣笨!
回復

使用道具 舉報

4

主題

986

回帖

24萬

積分

管理員

官方有償服務QQ 1453650

貢獻
179 點
金幣
240005 個
QQ
板凳
發表于 2024-10-8 19:47:24 | 只看Ta
按標準升級步驟升級不會導致密碼錯誤無法登錄,出現無法登錄都是沒按要求操作,導致數據庫表結構還沒升級時,密碼就被更新覆蓋
回復

使用道具 舉報

1

主題

9

回帖

16

積分

初學乍練

貢獻
0 點
金幣
5 個
地板
 樓主| 發表于 2024-10-8 22:59:09 | 只看Ta
Discuz有償服務 發表于 2024-10-8 19:47
按標準升級步驟升級不會導致密碼錯誤無法登錄,出現無法登錄都是沒按要求操作,導致數據庫表結構還沒升級時 ...

您是站著說話不腰疼!~
有沒有親自操作過從7.0升到X3.5?若想較真兒,建議您“按標準升級步驟”試試先!
回復

使用道具 舉報

1

主題

9

回帖

16

積分

初學乍練

貢獻
0 點
金幣
5 個
5#
 樓主| 發表于 2024-10-8 23:00:37 | 只看Ta
【寫在最后】

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

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

在全程折騰后,我越來越清晰——其實遭遇這情況的問題根源是Discuz! X3.2 之后新增了“bcrypt”密碼加密算法…… 雖然論壇用戶數據表中存儲的依然是md5方式加密的密碼,但與之互通的uc_server的用戶數據表中存儲的卻是“bcrypt”加密的。
回復

使用道具 舉報

4

主題

986

回帖

24萬

積分

管理員

官方有償服務QQ 1453650

貢獻
179 點
金幣
240005 個
QQ
6#
發表于 2024-10-9 02:06:41 | 只看Ta
寬凨 發表于 2024-10-8 22:59
您是站著說話不腰疼!~
有沒有親自操作過從7.0升到X3.5?若想較真兒,建議您“按標準升級步驟”試試先! ...

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-9-18 13:20 , Processed in 0.080559 second(s), 31 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表