訓練家的佈弱格-Patch1.2

The BLOG of trainer



編輯日期:2022-06-07 06:22

類型:網誌
作者:羽山
文章時間:2022-06-07 06:22:37
瀏覽人數:2596人
標題: 3WA 全站 utf8 轉 utf8mb4
網址:http://demo.3wa.tw/blog/blog.php?id=1979
內容:
 

近期有網友留言,總是喜歡打些語言表情符合,如~👶😛🤓

之前 mysql(Mariadb) 資料庫的字集宣告使用

Character set: utf8

Collation: utf8_general_ci

當遇到這類的「文字」,會無法寫入直接 throw exception

把字集都改成更新的 utf8mb4 即可

花了半小時寫了一支自動轉整個 database 的語法:

https://demo.3wa.tw/mypaper/index.php?uid=shadow&mode=view&id=2079

將內容存成「database_to_utf8mb4.php」,執行方式:

php database_to_utf8mb4.php [資料庫]

一輪跑下來自動就把該資料庫裡所有 table column 有 Character set 全都轉

table 宣告也轉、database 也轉

已知遇到的問題:

1、如果你把 varchar 拿來當 index,會有上限 1000byte 的異常

需先把 index 拿掉才能轉換

2、沒有記下 table column comments 註解,之後有其他站要轉,有空再改~

3、沒有羽山刻的 selectSQL_SAFE execSQL_SAFE 也不能跑 XD,想用的同學再私下跟我要 Code 吧

 

2022-06-07 補充:

資料庫從 utf8 轉成 utf8mb4 後,在每天的自動備份,看備份檔沒有明顯的變化,跟前幾天一樣。

另外在轉檔前,我曾試著在另一台 windows 裡安裝 mariadb ,但因為備份檔已太大(1.9GB)

無法使用 mysql -u帳號 -p < db_2022_06_06.sql 這樣的指令匯入,在windows作業系統如要匯入

,使用 cmd ,進到命令提示字元,需先切換至 utf8 環境

chcp 65001

然後進入 mysql

mysql -u帳號 -p密碼

進入後,再下指令匯入

source db_2022_06_06.sql

 

轉成 utf8mb4 後還沒有還原匯入,再找時間試試會不會匯失敗

 

2023-06-19 補充:

在 2023-04 月左右, 3WA 升級新電腦重灌作業系統至 Fedora 38,一次跳了好幾個世代

離上一次裝系統是 2012 年,那時還在用 Fedora 16,幾乎用了 11 才重灌新系統^^"

這次安裝系統直接把之前轉好的 utf8mb4 匯入到資料庫,穩穩的直上

而且 PHP 也從當年的 5.4 (後來末期有裝到 php 7.4,至現在最新的 php 8.2.7RC1)

還好程式不用太大修改都可以繼續使用

 

 

 

首頁  上十頁  上一頁  1 下一頁    最末頁 (總共有...1頁)

第 1 頁

有話要說  看留言 【2】
其他分類
當月訓練
(2022-06-18)
【NSR 150】NSR150 轉速表卡住

(2022-06-07)
【網誌】3WA 全站 utf8 轉 utf8mb4

最新訓練
(2024-09-15)
【FZR 150】FZR維修-大閔廢鐵號

(2024-09-11)
【遊戲 / 生活】更換新的濾水器水龍頭

(2024-09-04)
【NSR 150】NSR150 大燈燈炮更換

(2024-09-01)
【KTM 390】KTM Duke 390 安裝空濾盒、水箱水、油箱、試發動

(2024-08-31)
【KTM 390】KTM Duke 390 引擎上車、節流閥安裝、空濾盒修補、單向閥思考

(2024-08-30)
【機車綜合相關】買了一組盜版牧田DTW1002

(2024-08-25)
【KTM 390】KTM Duke 390 汽門間隙檢查、凸輪軸安裝、汽缸蓋、機油壓力開關

(2024-08-24)
【KTM 390】KTM Duke 390更換內鏈排骨

(2024-08-17)
【KTM 390】KTM Duke 390內鏈排骨問題查修-清洗篇

(2024-08-10)
【KTM 390】KTM Duke 390內鏈排骨問題查修-中(落引擎)