步驟很簡單:
- 新增使用者
sudo adduser exfast
- 給予管理員權限
admin usermod -aG sudo exfast
興趣使然的軟體工程師,擅長 Exception。
步驟很簡單:
sudo adduser exfast
admin usermod -aG sudo exfast
最近把 exfast.Helper 移植到 Linux 上面,發現錯誤 LOG 常常噴 One or more errors occurred. (Too many open files in system)
,查了一下發現原來 Linux 有限制檔案開啟的數量。
最近想部屬應用程式到 Linux 上玩玩,碰到了時區轉換的問題,在 Window 中可以使用
TimeZoneInfo.FindSystemTimeZoneById("Taipei Standard Time")
取得台灣時區,放到 Linux 卻噴了錯誤給我看
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {1e7284ba-b3b0-4c9a-8e1c-4dac05942fc7} may be persisted to storage in unencrypted form. Application startup exception: System.TimeZoneNotFoundException: The time zone ID 'Taipei Standard Time' was not found on the local computer. ---> System.IO.FileNotFoundException: Could not find file '/usr/share/zoneinfo/Taipei Standard Time'. at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
Linux 認不得 Taipei Standard Time
那該怎麼辦呢?
今天把 GCP 的記憶體調整縮小,立馬發生 MySQL 崩潰的問題,大膽判斷此問題與記憶體有關,檢查了一下 LOG 果真如此
InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 InnoDB: Completed initialization of buffer pool InnoDB: Fatal error: cannot allocate memory for the buffer pool
檢查發現 GCP 建立的時候沒有幫我開啟 Swap,然後我又把規格調整到最低的 f1-micro 才引發此問題。
環境:Window 7
docker volume create vol-mssql
docker run \ --restart=always \ --name mssql \ --mount "source=vol-mssql,target=/var/opt/mssql" \ -e "ACCEPT_EULA=Y" \ -e "SA_PASSWORD=1OCHWiY9O#RF" \ -e "MSSQL_PID=Express" \ -e "MSSQL_COLLATION=Chinese_Taiwan_Stroke_CI_AS" \ -p 1433:1433 \ -d microsoft/mssql-server-linux:latest
docker exec -ti mssql bash apt-get update apt-get install tzdata -y dpkg-reconfigure tzdata
參考資料: