Docker 外部 Cron 遇到 the input device is not a TTY 解法

現在於 Linux 程式很多都包 Docker,而需要定期跑得程式,可以跑在 Docker 裡面(需要特別做),或者就是在外部 docker exec 執行

但是在 docker exec + crontab 的時候,就會遇到「the input device is not a TTY」 的錯誤,要怎麼解決呢?

閱讀全文〈Docker 外部 Cron 遇到 the input device is not a TTY 解法〉

使用 mysqldump 倒出 MySQL 所有資料庫(表) 固定筆數的資料

想要快速建立開發、測試環境,資料庫的資料通常最難搞定。

此篇將隨意由 MySQL 的各個資料庫、各個 Table 倒出固定筆數的資料,然後快速匯入產生開發、測試環境。

  • 注意:此篇「沒辦法」搞定資料相依性、資料匿名、資料隱藏等等。

閱讀全文〈使用 mysqldump 倒出 MySQL 所有資料庫(表) 固定筆數的資料〉

MySQL 出現 SHOW VARIABLES LIKE gtid_mode 1142 修復方式

升級 MySQL 5.7 後,每天自動跑的 mysqldump 命令出現下述錯誤:

mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid_mode'': SELECT command denied to user 'user'@'localhost' for table 'session_variables' (1142)

閱讀全文〈MySQL 出現 SHOW VARIABLES LIKE gtid_mode 1142 修復方式〉

mysqldump 一筆一行 Insert 的 Dump 語法

MySQL 想要對文字內容大量取代某個網址, 比較安全的做法是先 mysqldump 所有資料後, 對內容做取代, 然後在整個 Import 回去.

但是有幾個問題:

  1. 怕取代資料會有意外, 所以做完要再次確定修改的筆數, 來以防替換到不該取代的, 問題就大了.
  2. mysqldump 的資料都是一次 Insert 好幾筆資料混在同一行, 造成確認困難.

以上問題, 只要 MySQL dump 的資料可以一筆 Insert, 一行 SQL 語法, 就可以解決此問題.

閱讀全文〈mysqldump 一筆一行 Insert 的 Dump 語法〉