老題目了,做個筆記。
Linux 底下,所有程式、指令結束都會有個 exit code,有點像是執行成功、或失敗的狀態。一般來說,正常執行的 exit code 都會是 0。
如果要看前一個指令執行後的 exit code,可以使用「echo $?」來看:
$ cd .
$ echo $?
0
$ mkdir app
mkdir: cannot create directory ‘app’: File exists
echo $?
1
軟體開發、伺服器和生活瑣事
老題目了,做個筆記。
Linux 底下,所有程式、指令結束都會有個 exit code,有點像是執行成功、或失敗的狀態。一般來說,正常執行的 exit code 都會是 0。
如果要看前一個指令執行後的 exit code,可以使用「echo $?」來看:
$ cd .
$ echo $?
0
$ mkdir app
mkdir: cannot create directory ‘app’: File exists
echo $?
1
中斷所有正在運作的 container:
docker kill $(docker ps -q)
刪除所有已中止的 container:
docker rm $(docker ps -a -q)
刪除所有的 images:
docker rmi $(docker images -q)
在前篇有提到要在 my.ini 設定預設值,但實際要完全可以支援到 UTF8mb4 的話,還要多幾項設定,不然還是有機會遇到錯誤,像是:「The maximum column size is 767 bytes」之類的。
先講「innodb_large_prefix」,由於 UTF8mb4 會讓儲存相同內容的 bytes 更多,建立索引時會發生錯誤,所以必須支援 large preefix 來避免建立所以時發生錯誤。可以參考 MySQL 官方說明。
在 MySQL 5.7 之後,InnoDB 新增個幾種儲存格式,像是 Barracuda,可以應付各種不同的情境,也可以支援 UTF8mb5 這種字元,所以要使用的話大概會需要這樣設定:
innodb_large_prefix
innodb_file_per_table = 1
innodb_file_format=Barracuda
innodb_default_row_format=DYNAMIC
完整的設定檔大概會類似下面這樣:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
innodb_large_prefix
innodb_file_per_table = 1
innodb_file_format=Barracuda
innodb_default_row_format=DYNAMIC
[mysqldump]
default-character-set = utf8mb4
MySQL 支援多個不同的 character set,像是 latin1、utf8 等等,但是只要在規劃、連線時沒有做好設定,就很容易對應到錯誤的 character set 導致出現亂碼。
自己從 gslin 和 Percona、Study-Area 那邊整理出一些比較保險的設定方法,可以避免之後在維護時發生錯誤:
[client]
default-character-set = utf8mb4
[mysqld]
default-storage-engine = InnoDB
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
備註:
Garmin fenix 3 HR 的手錶,錶帶扣環因為長期使用 (約 2 年) 而斷裂。
查詢後大概知道有幾個處理方式:
扣環安裝不需拆下錶帶。
因扣環稍有彈性,在套進去錶帶時,稍微拉撐後,慢慢推入錶帶內即可。