本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
前陣子感覺這台主機應該要升級一下,先從資料庫開始。(自討苦吃的開始)
mysqldump --all-databases > dump.sql
一行指令先將所有資料庫打包。中間碰到不少早已不存在的破碎檔案阻礙匯出(Wordfence 有雷!)。障礙排除後就大膽把資料庫給重新編譯安裝。
以為可以一路順遂升級到 MySQL 5.7 結果裝好後才發現匯入資料庫時碰到使用者架構有改,沒匯入進去。資料庫還有部分沒匯入完整!!(暈)
想說認命一個一個還原回去,結果「又」碰到 datetime 類型預設值被限制不得為「0」,查看 sql_mode show variables like 'sql_mode';
發現這兩個參數 NO_ZERO_IN_DATE, NO_ZERO_DATE 作怪。
參考此篇文章: ubuntu 16.04系统wordpress-4.9.4修改表引擎报告错误“Invalid default value for 'comment_date'” 來解資料庫的限制(我使用 set session 臨時修改作法)
set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
然後回去面對那一大包資料庫,把沒匯入完整的資料庫片段用 sed 指令抽出:
sed -i.bak -e '1,1000d;2000,3000d' dump.sql
指令的意思是:把 dump.sql 檔案中 1~1000行與2000~3000行刪除,留下1001~1999這段後,把 dump.sql 原始檔案備份為 dump.sql.bak
重複上述抽取資料庫手法把網站逐一還原,凌晨十二點搞到快四點,客戶早上醒來又是一個新的美好一天呢!
俗話說,好奇心會殺死一隻貓,我還認為熱血也會害死一個工程師阿,可惜報價上沒有一筆「工程師健康維護費」XD
有很多世界和平都需要這樣背後默默努力的角色,或許是我喜歡這樣隱藏角色的不俗感而驅使自己努力學習吧(自以為)
最後衷心提醒:如果你對正在使用的技術不熟,隨意更新會讓你有機會更熟!(逃)
#WordPress #MySQL #comment_date #資料庫升級 #技術相關
- Powered by Mxp.TW -FB2WP-