訓練家的佈弱格-Patch1.2

The BLOG of trainer



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

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

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

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

Character set: utf8

Collation: utf8_general_ci

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

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

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

https://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-03-09)
【HONDA CBR1000RR】CBR1000RR 原廠管

(2024-02-24)
【NSR 150】NSR150 整理後卡鉗

(2024-02-14)
【機車綜合相關】買了牧田的打氣機與心得

(2024-02-10)
【NSR 150】NSR150 整流器接頭重作

(2024-02-09)
【機車綜合相關】鋰電、鋰鐵電池、電源充電器

(2024-01-07)
【NSR 150】NSR150 貨架耳朵斷裂維修

(2024-01-06)
【KTM 390】KTM Duke390 維修發電問題 電盤內仁

(2023-12-29)
【NSR 150】NSR150 改可調拉桿

(2023-11-20)
【遊戲 / 生活】防盜洗手罐

(2023-11-17)
【KTM 390】KTM Duke390 製作鋰鐵電池