Software

MySQL 移除 binlog 方式

因為最近資料庫逐漸肥大,然後 RD 那邊反映它們已經將程式所產生的 LOG 從 DB 移除了,後來查的結果才發現是 MySQL binlog 的問題 在 my.cnf 裡面加入自動移除天數 expire_logs_days=3  #僅保留三天,預設值是0永久保留 進入 MySQL 手動移除 show binary logs; #顯示出目前 binlog 狀況 RESET MASTER; #刪除所有的 binlog 並從頭開始編號 PURGE MASTER LOGS TO ‘xxx-bin.010’; # 由 xxx-bin.010 開始開始刪除之前的 log PURGE MASTER LOGS BEFORE ‘2022-01-01 00:00:00’; #刪除相對日期之前的 log

Continue Reading
Software

NGINX 使用 X-Forwarded-For 做為真實 IP 的方式

因為安全上的考量本來使用了 allow 做為 IP 進入的限定,但是因為後來前面又掛了一道代理,所以取得的 IP 就變成必須取得 X-Forwarded-For 做為真實 IP ,查了一下 NGIXN 有一個模組是 real_ip_header,以下是用法 set_real_ip_from 192.0.0.0/8; real_ip_header X-Forwarded-For; real_ip_recursive on; set_real_ip_from <=== 允許上游的 server IP 簡單來說可以是上一道代理或是 CDN real_ip_header <=== 將真實 IP 轉為哪一種 real_ip_recursive <=== 啟動或關閉真實 IP 取得,預設是 off off 傳遞最後一台機器的 IP on 以 real_ip_header 設置的為主 以上的三個參數在 http, server, location 皆可使用

Continue Reading
Software

Docker 的 Mysql 如何做 mysqldump

因為都是小專案所以在佈署上就都使用了 Docker 就連 DB 也是,但是另一個問題就是怎麼用 mysqldump 把 DB 備份出來,後來找到了一個方式 備份 DB : docker exec CONTAINER /usr/bin/mysqldump -u root –password=root DATABASE > backup.sql 復原 DB : cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root –password=root DATABASE ## 這邊要注意要多加一個 -i 才有辦法把 cat 出來的東西塞進 CONTAINER

Continue Reading
Software

未加入網域狀態下使用 powershell 連線

按照一般流程建立完 winrm 之後在連線的時候發生了一個錯誤 Enter-PSSession : 連線到遠端伺服器 192.168.1.1 失敗,傳回下列錯誤訊息: WinRM 用戶端無法處理該要求。若驗證配置與 Kerberos 不同,或是用戶端電腦沒有加入網域, 則必須使用 HTTPS 傳輸,或是將目標電腦新增到 TrustedHosts 組態設定中。 請使用 winrm.cmd 來設定 TrustedHosts。請注意,可能不會驗證在 TrustedHosts 清單中的電腦。 您可以執行下列命令,以取得相關的詳細資訊: winrm help config。 如需詳細資訊,請參閱 about_Remote_Troubleshooting 說明主題。 發現原來兩台電腦在沒有建立網域的狀態底下會需要使用 HTTPS 連線,所以連線指令要改成 Enter-PSSession 192.168.1.1 -Credential (Get-Credential) -UseSSL 然後又發生了另一個錯誤 Enter-PSSession : [192.168.1.1] 連線到遠端伺服器 192.168.1.1 失敗,傳回下列錯誤訊息: 用戶端無法連線到要求中指定的目 的地。 請確定目的地上的服務正在執行並接受要求。 請參閱在目的地 (最常見的是 IIS 或 WinRM) 上執行 WS-Management …

Continue Reading
Software

將 Docker 推送至 Artifact registry 代管

如果要將 Docker image 推送至 Artifact registry 需要幾個步驟 gcloud 登入金鑰 Artifact registry 存放區設定 Artifact registry 登入 gcloud 登入金鑰的方式之前有寫過了,Artifact registry 存放區設定就按照 UI 的指示就可以了 Artifact registry 登入比較需要筆記一下 使用 gcloud 進行驗證 gcloud auth activate-service-account {ACCOUNT} –key-file=KEY-{FILE} 加入 GCP 主機列表 gcloud auth configure-docker {HOSTNAME-LIST} 確認是否有加入 gcloud artifacts locations list ACCOUNT = IAM 建立的服務帳號 FILE = 服務帳號下載的金鑰檔位置 HOSTNAME-LIST = GCP 的主機位置列表 …

Continue Reading
Software

建立 gcloud CLI 登入金鑰

gcloud CLI 是一種可以透過 CLI 執行 GCP 服務的一 SDK 跟 AWS 的 cli 是一樣的 使用 gcloud CLI 時跟 AWS cli 一樣除了安裝相應的套件以外還要先建立 account keys 先在 IAM 帳號建立帳號及角色或是使用 1.1 啟動 IAM API 服務 1.2 選擇服務帳戶及建立服務帳戶 1.3 填寫服務帳戶名稱及 ID 1.4 授予相關權限 產生金鑰 2.1 進服務帳戶後點選剛剛建立的帳戶 (SA_NAME@PROJECT_ID.iam.gserviceaccount.com) 2.2 點選金鑰並新增金鑰 2.3 金鑰類型選擇 JSON 這樣就可以完成金鑰的設置,之後要使用就可以直接使用 gcloud auth 的方式登入而不需要打開網頁 例如 gcloud auth {SERVER} {ACCOUNT} …

Continue Reading
Software

mysqldump 需要的權限

在做 MySQL dump 備份的時候之前都會使用 ALL 去取得全部的資料庫 不過在安全性上就會有些疑慮了,所以最好的方式還是設定一個專用的帳號 需要的權限有這些: SELECT PROCESS LOCK TABLES SHOW VIEW TRIGGER 直接進入 CLI 後建立使用者跟權限的方式 CREATE USER 'dbbackup'@'%' IDENTIFIED BY '12345678'; GRANT SELECT, PROCESS, LOCK TABLES, SHOW VIEW, TRIGGER ON *.* TO 'dbbackup'@'%';

Continue Reading
Software

Ubuntu 安裝 Apache Cassandra

安裝 OpenJDK sudo apt update && \ sudo apt install openjdk-8-jdk 安裝 apt-transport-https sudo apt install apt-transport-https 匯入 GPG Key wget -q -O – https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add – 新增 Add Repo echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list 安裝 Cassandra DB sudo apt update && \ sudo apt install cassandra …

Continue Reading
Software

Got error 261 ‘DML count in transaction exceeds config parameter

匯入 NDB 的時候發生了一個錯誤 ERROR 1296 (HY000) at line 65: Got error 261 'DML count in transaction exceeds config parameter MaxDMLOperationsPerTransaction/MaxNoOfConcurrentOp' from NDBCLUSTER 看起來的問題應該是匯入的 INSERT INTO 量太大了,所以要將 MaxNoOfConcurrentOperations 這個參數條大 [ndbd default] # 在 config 裡面定義這兩個參數就可以了 MaxNoOfConcurrentOperations=1048576 MaxNoOfConcurrentTransactions=1048576

Continue Reading