MySQL 將 Table Character 由 UTF8 改為 UTF8MB4

MySQL Table 以前建立 Table 是使用 UTF-8 (3 bytes),現在因為一些特殊字、Emoji 等等,需要用到 4 bytes,所以需要使用 UTF8MB4,線上要怎麼動態修改呢?

  • 註:MySQL 5.5.3 以後開始支援 UTF8MB4 (5.5 以前的實際名稱叫 UTF8MB3)

閱讀全文〈MySQL 將 Table Character 由 UTF8 改為 UTF8MB4〉

MySQL Table RENAME、重建作法

MySQL 刪除資料後,空間並不會釋放出來,可以使用 OPTIMIZE TABLE 來釋放空間,OPTIMIZE 等同於 TABLE Copy & RENAME,所以會有大量 IO。

我是採用兩種方式來做,依照資料量大小來做選擇。(一樣會有大量IO,但是可以自己掌握,缺點是執行時會有短暫的時間可能漏資料)

不過資料量過大的,還是建議另外處理,這種作法是非常不得已的。

閱讀全文〈MySQL Table RENAME、重建作法〉

瀏覽器的 console log 幾種不同呈現方式

瀏覽器在 Debug 常常使用 console.log(),除了 console.log 外,還有沒有更多的參數可以使用呢?

  • console.log():標準的文字
  • console.error():出現紅字錯誤文字 和 錯誤的 X
  • console.warn():出現黃色警告文字 和 警告的 !
  • console.table():可於 console 出現表格
  • 客製化 console.log:(前景綠字、背景黃色、24px 字體大小)
    (() => {
        console.log('%c%s', 'color: green; background: yellow; font-size: 24px;','Success!')
    })();

詳見此篇:Better console.logs

Linux 遇到 nf_conntrack: table full, dropping packet 解法

系統平常跑得很正常,為何灌了 Docker 後,dmesg 開始出現下述的訊息:

  • nf_conntrack: table full, dropping packet

要怎麼解決呢?

閱讀全文〈Linux 遇到 nf_conntrack: table full, dropping packet 解法〉