在 Docker 內安裝 MariaDB Server

要做程式的搬移,臨時想要在 Docker 裡面裝個 MariaDB (MySQL) 來使用,沒想到光要看到 error 都要花點功夫~

閱讀全文〈在 Docker 內安裝 MariaDB Server〉

MySQL Percona innobackupex 備份帳號需要的權限

MySQL 要備份資料庫,可以使用 Percona 的 Tookit 的 innobackupex (xtrabackup) 來備份。

要為 innobackupex 建立一個備份專用的使用者,需要哪些權限呢?

閱讀全文〈MySQL Percona innobackupex 備份帳號需要的權限〉

MySQL 建立 View 的語法 與 簡易應用

View 可以縮短 SQL 撰寫的長度,只是做個類似轉換的動作,後面該做的還是跑不掉的。

不過若有新舊版程式,例如要將這個 Table Name 加上「年月」,但是原始 Table 暫時還要可以讀取,就可以靠 View 來達成。

閱讀全文〈MySQL 建立 View 的語法 與 簡易應用〉

MySQL Table RENAME、重建作法

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

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

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

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

MySQL 輸出 FLOAT、CHAR 強制轉換成 INT 或其它型態

MySQL rand() 預設是浮點數(float / double),但是想要取整數的話,可以怎麼做呢?

  • mysql> SELECT rand(); // 0.519057333021478

閱讀全文〈MySQL 輸出 FLOAT、CHAR 強制轉換成 INT 或其它型態〉